@merkl/api 0.20.106 → 0.20.109

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 (366) hide show
  1. package/dist/src/constants.d.ts +1 -23
  2. package/dist/src/constants.js +1 -36
  3. package/dist/src/eden/index.d.ts +347 -226
  4. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Ajna.js +1 -1
  5. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Clamm.js +4 -4
  6. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Compound.js +2 -2
  7. package/dist/src/engine/deprecated/dynamicData/implementations/CompoundV3.js +101 -0
  8. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Dolomite.js +1 -1
  9. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERC721.js +2 -2
  10. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERCMultiToken.js +2 -2
  11. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EigenLayer.js +1 -1
  12. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20.d.ts +1 -1
  13. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20.js +10 -10
  14. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20Snapshot.js +1 -1
  15. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EventBased.js +2 -2
  16. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Morpho.js +1 -1
  17. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Radiant.js +3 -3
  18. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Silo.js +2 -2
  19. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/UniswapV4.js +2 -2
  20. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Vest.js +2 -2
  21. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchA51Strategies.js +2 -2
  22. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getDolomiteMarkets.js +2 -2
  23. package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getEulerV2Vaults.js +1 -1
  24. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/GenericProcessor.d.ts +1 -1
  25. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/factoryFinder.d.ts +1 -1
  26. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/factoryFinder.js +1 -1
  27. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/hardcoded.d.ts +1 -1
  28. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/hardcoded.js +1 -1
  29. package/dist/src/engine/deprecated/erc20SubTypeProcessors/helpers/ownerFinder.d.ts +2 -0
  30. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/ownerFinder.js +1 -1
  31. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AaveProcessor.d.ts +1 -1
  32. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AnglesLiquid.d.ts +1 -1
  33. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AssetProcessor.d.ts +1 -1
  34. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AssetProcessor.js +1 -1
  35. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AuraProcessor.d.ts +1 -1
  36. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BEXRewardGaugeProcessor.d.ts +1 -1
  37. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.d.ts +1 -1
  38. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.d.ts +1 -1
  39. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.d.ts +1 -1
  40. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BeefyProcessor.d.ts +1 -1
  41. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BunniV2Processor.d.ts +1 -1
  42. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/CompoundProcessor.d.ts +1 -1
  43. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ERC4626Processor.d.ts +1 -1
  44. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EnzymeProcessor.d.ts +1 -1
  45. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.d.ts +1 -1
  46. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.d.ts +1 -1
  47. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerLendProcessor.d.ts +1 -1
  48. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FluidProcessor.d.ts +1 -1
  49. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FraxProcessor.d.ts +1 -1
  50. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FraxProcessor.js +1 -1
  51. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaALMProcessor.d.ts +1 -1
  52. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaProcessor.d.ts +1 -1
  53. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GearboxProcessor.d.ts +1 -1
  54. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.d.ts +1 -1
  55. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HoldStationProcessor.d.ts +1 -1
  56. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HourglassProcessor.d.ts +1 -1
  57. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.d.ts +1 -1
  58. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.d.ts +1 -1
  59. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.d.ts +1 -1
  60. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.js +1 -1
  61. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleProcessor.d.ts +1 -1
  62. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleYTProcessor.d.ts +1 -1
  63. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RadiantProcessor.d.ts +1 -1
  64. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RfxProcessor.d.ts +1 -1
  65. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/Satlayer.d.ts +1 -1
  66. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraProcessor.d.ts +1 -1
  67. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraProcessor.js +3 -3
  68. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.d.ts +1 -1
  69. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.js +3 -3
  70. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpliceProcessor.d.ts +1 -1
  71. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.d.ts +1 -1
  72. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.d.ts +1 -1
  73. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.js +1 -1
  74. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TemplateProcessor.d.ts +1 -1
  75. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TorosProcessor.d.ts +1 -1
  76. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/UniswapProcessor.d.ts +1 -1
  77. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/VicunaProcessor.d.ts +1 -1
  78. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/WoofiProcessor.d.ts +1 -1
  79. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.d.ts +1 -1
  80. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.d.ts +1 -1
  81. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveProcessor.d.ts +1 -1
  82. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveProcessor.js +1 -1
  83. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/processorMapping.d.ts +1 -1
  84. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/processorMapping.js +3 -1
  85. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.d.ts +1 -1
  86. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.js +1 -1
  87. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/xU308Processor.d.ts +1 -1
  88. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesPrices.d.ts +1 -1
  89. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesPrices.js +1 -1
  90. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound1.js +5 -1
  91. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound2.d.ts +1 -1
  92. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound3.d.ts +1 -1
  93. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound4.d.ts +1 -1
  94. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeStruct.d.ts +1 -1
  95. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeToProtocolAndAction.d.ts +1 -1
  96. package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeToProtocolAndAction.js +3 -1
  97. package/dist/src/engine/{opportunityMetadata/implementations/Ajna.d.ts → implementations/Ajna/metadata.d.ts} +4 -3
  98. package/dist/src/engine/{opportunityMetadata/implementations/Ajna.js → implementations/Ajna/metadata.js} +4 -3
  99. package/dist/src/engine/implementations/Ajna/tvl.d.ts +7 -0
  100. package/dist/src/engine/{campaignTVL/implementations/Ajna.js → implementations/Ajna/tvl.js} +9 -9
  101. package/dist/src/engine/{opportunityMetadata/implementations/Ambient.d.ts → implementations/Ambient/metadata.d.ts} +4 -3
  102. package/dist/src/engine/{opportunityMetadata/implementations/Ambient.js → implementations/Ambient/metadata.js} +2 -1
  103. package/dist/src/engine/{campaignTVL/implementations/Ambiant.d.ts → implementations/Ambient/tvl.d.ts} +3 -3
  104. package/dist/src/engine/{campaignTVL/implementations/Ambiant.js → implementations/Ambient/tvl.js} +2 -2
  105. package/dist/src/engine/{opportunityMetadata/implementations/Badger.d.ts → implementations/Badger/metadata.d.ts} +4 -3
  106. package/dist/src/engine/{opportunityMetadata/implementations/Badger.js → implementations/Badger/metadata.js} +2 -1
  107. package/dist/src/engine/{opportunityMetadata/implementations/Clamm.d.ts → implementations/Clamm/metadata.d.ts} +4 -3
  108. package/dist/src/engine/{opportunityMetadata/implementations/Clamm.js → implementations/Clamm/metadata.js} +2 -1
  109. package/dist/src/engine/{opportunityMetadata/implementations/Compound.d.ts → implementations/Compound/metadata.d.ts} +5 -4
  110. package/dist/src/engine/{opportunityMetadata/implementations/Compound.js → implementations/Compound/metadata.js} +3 -2
  111. package/dist/src/engine/{opportunityMetadata/implementations/CompoundV3.d.ts → implementations/CompoundV3/metadata.d.ts} +5 -4
  112. package/dist/src/engine/{opportunityMetadata/implementations/CompoundV3.js → implementations/CompoundV3/metadata.js} +4 -3
  113. package/dist/src/engine/implementations/Default/metadata.d.ts +13 -0
  114. package/dist/src/engine/{opportunityMetadata/implementations/Default.js → implementations/Default/metadata.js} +3 -2
  115. package/dist/src/engine/{opportunityMetadata/implementations/Dolomite.d.ts → implementations/Dolomite/metadata.d.ts} +5 -4
  116. package/dist/src/engine/{opportunityMetadata/implementations/Dolomite.js → implementations/Dolomite/metadata.js} +3 -2
  117. package/dist/src/engine/{opportunityMetadata/implementations/EigenLayer.d.ts → implementations/EigenLayer/metadata.d.ts} +5 -4
  118. package/dist/src/engine/{opportunityMetadata/implementations/EigenLayer.js → implementations/EigenLayer/metadata.js} +2 -1
  119. package/dist/src/engine/implementations/Encompassing/metadata.d.ts +16 -0
  120. package/dist/src/engine/{opportunityMetadata/implementations/Encompassing.js → implementations/Encompassing/metadata.js} +4 -3
  121. package/dist/src/engine/implementations/Erc20/metadata.d.ts +29 -0
  122. package/dist/src/engine/{opportunityMetadata/implementations/Erc20/index.js → implementations/Erc20/metadata.js} +19 -14
  123. package/dist/src/engine/{campaignTVL/implementations/Erc20/computeSubTypes.d.ts → implementations/Erc20/subTypes/detect.d.ts} +2 -2
  124. package/dist/src/engine/{campaignTVL/implementations/Erc20/computeSubTypes.js → implementations/Erc20/subTypes/detect.js} +6 -6
  125. package/dist/src/engine/implementations/Erc20/subTypes/factories.d.ts +5 -0
  126. package/dist/src/engine/implementations/Erc20/subTypes/factories.js +33 -0
  127. package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/metadata.d.ts +17 -0
  128. package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/metadata.js +21 -0
  129. package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/tvl.d.ts +6 -0
  130. package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/tvl.js +43 -0
  131. package/dist/src/engine/{campaignTVL/implementations/Erc20/Erc20SubType.d.ts → implementations/Erc20/subTypes/index.d.ts} +2 -0
  132. package/dist/src/engine/{campaignTVL/implementations/Erc20/Erc20SubType.js → implementations/Erc20/subTypes/index.js} +2 -0
  133. package/dist/src/engine/implementations/Erc20/tvl.d.ts +6 -0
  134. package/dist/src/engine/implementations/Erc20/tvl.js +98 -0
  135. package/dist/src/engine/implementations/Erc20Snapshot/metadata.d.ts +15 -0
  136. package/dist/src/engine/{opportunityMetadata/implementations/Erc20Snapshot.js → implementations/Erc20Snapshot/metadata.js} +2 -1
  137. package/dist/src/engine/implementations/Erc721/metadata.d.ts +17 -0
  138. package/dist/src/engine/{opportunityMetadata/implementations/ERC721.js → implementations/Erc721/metadata.js} +3 -2
  139. package/dist/src/engine/implementations/ErcMultiToken/metadata.d.ts +29 -0
  140. package/dist/src/engine/{opportunityMetadata/implementations/ERCMultiToken.js → implementations/ErcMultiToken/metadata.js} +5 -4
  141. package/dist/src/engine/{opportunityMetadata/implementations/Euler.d.ts → implementations/Euler/metadata.d.ts} +4 -3
  142. package/dist/src/engine/{opportunityMetadata/implementations/Euler.js → implementations/Euler/metadata.js} +5 -4
  143. package/dist/src/engine/{opportunityMetadata/implementations/EventBased.d.ts → implementations/EventBased/metadata.d.ts} +4 -3
  144. package/dist/src/engine/{opportunityMetadata/implementations/EventBased.js → implementations/EventBased/metadata.js} +2 -1
  145. package/dist/src/engine/{opportunityMetadata/implementations/Hyperdrive.d.ts → implementations/Hyperdrive/metadata.d.ts} +4 -3
  146. package/dist/src/engine/{opportunityMetadata/implementations/Hyperdrive.js → implementations/Hyperdrive/metadata.js} +3 -2
  147. package/dist/src/engine/{opportunityMetadata/implementations/Invalid.d.ts → implementations/Invalid/metadata.d.ts} +1 -1
  148. package/dist/src/engine/{opportunityMetadata/implementations/Ion.d.ts → implementations/Ion/metadata.d.ts} +4 -4
  149. package/dist/src/engine/{opportunityMetadata/implementations/Ion.js → implementations/Ion/metadata.js} +2 -1
  150. package/dist/src/engine/implementations/JsonAirdrop/metadata.d.ts +24 -0
  151. package/dist/src/engine/{opportunityMetadata/implementations/JsonAirdrop.js → implementations/JsonAirdrop/metadata.js} +4 -3
  152. package/dist/src/engine/{opportunityMetadata/implementations/Morpho.d.ts → implementations/Morpho/metadata.d.ts} +4 -3
  153. package/dist/src/engine/{opportunityMetadata/implementations/Morpho.js → implementations/Morpho/metadata.js} +4 -1
  154. package/dist/src/engine/{opportunityMetadata/implementations/Radiant.d.ts → implementations/Radiant/metadata.d.ts} +5 -4
  155. package/dist/src/engine/{opportunityMetadata/implementations/Radiant.js → implementations/Radiant/metadata.js} +4 -1
  156. package/dist/src/engine/{opportunityMetadata/implementations/Silo.d.ts → implementations/Silo/metadata.d.ts} +5 -4
  157. package/dist/src/engine/{opportunityMetadata/implementations/Silo.js → implementations/Silo/metadata.js} +4 -1
  158. package/dist/src/engine/{opportunityMetadata/implementations/UniswapV4.d.ts → implementations/UniswapV4/metadata.d.ts} +4 -3
  159. package/dist/src/engine/{opportunityMetadata/implementations/UniswapV4.js → implementations/UniswapV4/metadata.js} +2 -1
  160. package/dist/src/engine/implementations/UniswapV4/tvl.d.ts +7 -0
  161. package/dist/src/engine/{campaignTVL/implementations/UniswapV4.js → implementations/UniswapV4/tvl.js} +11 -11
  162. package/dist/src/engine/{opportunityMetadata/implementations/Vest.d.ts → implementations/Vest/metadata.d.ts} +5 -4
  163. package/dist/src/engine/{opportunityMetadata/implementations/Vest.js → implementations/Vest/metadata.js} +3 -2
  164. package/dist/src/engine/metadata/factory.js +71 -0
  165. package/dist/src/engine/tvl/factory.d.ts +3 -0
  166. package/dist/src/engine/tvl/factory.js +23 -0
  167. package/dist/src/hooks/checkQueryAddressValidity.js +1 -1
  168. package/dist/src/hooks/checkQueryChainIdValidity.js +1 -1
  169. package/dist/src/index.d.ts +123 -80
  170. package/dist/src/jobs/dynamic-data.js +1 -1
  171. package/dist/src/jobs/update-analytics.js +290 -34
  172. package/dist/src/jobs/update-euler-vaults.js +1 -1
  173. package/dist/src/libs/computeFee.js +1 -1
  174. package/dist/src/libs/deprecated-merklv3/index.js +1 -1
  175. package/dist/src/libs/getTokensList.js +1 -1
  176. package/dist/src/libs/merklChainData.js +1 -1
  177. package/dist/src/libs/positions/EigenLayer/index.d.ts +1 -1
  178. package/dist/src/libs/positions/ajna/index.d.ts +1 -1
  179. package/dist/src/libs/positions/badger/index.d.ts +1 -1
  180. package/dist/src/libs/positions/clamm/index.js +3 -3
  181. package/dist/src/libs/positions/clamm/thegraph/fetchAlmPositions.js +1 -1
  182. package/dist/src/libs/positions/clamm/thegraph/fetchAmmPositions.js +1 -1
  183. package/dist/src/libs/positions/clamm/thegraph/fetchFarmedPositions.js +1 -1
  184. package/dist/src/libs/positions/compound/index.d.ts +1 -1
  185. package/dist/src/libs/positions/dolomite/index.d.ts +1 -1
  186. package/dist/src/libs/positions/erc20/index.d.ts +1 -1
  187. package/dist/src/libs/positions/erc20/index.js +0 -1
  188. package/dist/src/libs/positions/euler/index.d.ts +1 -1
  189. package/dist/src/libs/positions/euler/index.js +0 -1
  190. package/dist/src/libs/positions/index.js +1 -1
  191. package/dist/src/libs/positions/morpho/index.d.ts +1 -1
  192. package/dist/src/libs/positions/prepareFetch.js +1 -1
  193. package/dist/src/libs/positions/silo/index.d.ts +1 -1
  194. package/dist/src/libs/tokens/balances.d.ts +1 -1
  195. package/dist/src/libs/tokens/balances.js +1 -1
  196. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +42 -15
  197. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +7 -9
  198. package/dist/src/modules/v4/campaign/campaign.repository.js +20 -27
  199. package/dist/src/modules/v4/campaign/campaign.service.d.ts +47 -17
  200. package/dist/src/modules/v4/campaign/campaign.service.js +51 -38
  201. package/dist/src/modules/v4/campaign/campaign.test.controller.d.ts +67 -22
  202. package/dist/src/modules/v4/campaign/campaign.test.controller.js +32 -9
  203. package/dist/src/modules/v4/chain/chain.controller.d.ts +3 -1
  204. package/dist/src/modules/v4/chain/chain.repository.d.ts +8 -2
  205. package/dist/src/modules/v4/chain/chain.repository.js +1 -2
  206. package/dist/src/modules/v4/chain/chain.service.d.ts +16 -2
  207. package/dist/src/modules/v4/chain/chain.service.js +3 -3
  208. package/dist/src/modules/v4/dynamicData/dynamicData.service.js +49 -13
  209. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +4 -4
  210. package/dist/src/modules/v4/opportunity/opportunity.converter.d.ts +2 -1
  211. package/dist/src/modules/v4/opportunity/opportunity.converter.js +1 -1
  212. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +8 -8
  213. package/dist/src/modules/v4/opportunity/opportunity.service.js +16 -32
  214. package/dist/src/modules/v4/programPayload/programPayload.controller.d.ts +7 -7
  215. package/dist/src/modules/v4/programPayload/programPayload.model.d.ts +3 -3
  216. package/dist/src/modules/v4/programPayload/programPayload.model.js +2 -2
  217. package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +279 -4
  218. package/dist/src/modules/v4/programPayload/programPayload.repository.js +295 -3
  219. package/dist/src/modules/v4/protocol/protocol.model.d.ts +1 -1
  220. package/dist/src/modules/v4/protocol/protocol.model.js +1 -0
  221. package/dist/src/modules/v4/router.d.ts +123 -80
  222. package/dist/src/modules/v4/router.js +0 -2
  223. package/dist/src/modules/v4/uniswap/uniswap.service.js +1 -1
  224. package/dist/src/routes/v3/campaigns.js +3 -3
  225. package/dist/src/routes/v3/compoundV2.js +1 -1
  226. package/dist/src/routes/v3/createCampaign.js +1 -1
  227. package/dist/src/routes/v3/dolomite.js +1 -1
  228. package/dist/src/routes/v3/euler.js +1 -1
  229. package/dist/src/routes/v3/fetch.js +1 -1
  230. package/dist/src/routes/v3/lostyield.js +3 -3
  231. package/dist/src/routes/v3/merkl.js +2 -2
  232. package/dist/src/routes/v3/multiChainPositions.js +1 -1
  233. package/dist/src/routes/v3/overview.js +1 -1
  234. package/dist/src/routes/v3/poolInfo.js +2 -2
  235. package/dist/src/routes/v3/rewardsReport.js +1 -1
  236. package/dist/src/scripts/reparse-opportunities.js +5 -3
  237. package/dist/src/utils/decodeCalls.d.ts +1 -1
  238. package/dist/src/utils/decodeCalls.js +3 -1
  239. package/dist/src/utils/encodeCalls.d.ts +1 -1
  240. package/dist/src/utils/encodeCalls.js +3 -1
  241. package/dist/src/utils/error.d.ts +6 -6
  242. package/dist/src/utils/generateCardName.d.ts +1 -1
  243. package/dist/src/utils/generateCardName.js +3 -1
  244. package/dist/tsconfig.package.tsbuildinfo +1 -1
  245. package/package.json +1 -1
  246. package/dist/src/engine/campaignTVL/factory.d.ts +0 -3
  247. package/dist/src/engine/campaignTVL/factory.js +0 -23
  248. package/dist/src/engine/campaignTVL/implementations/Ajna.d.ts +0 -7
  249. package/dist/src/engine/campaignTVL/implementations/Erc20/factory.d.ts +0 -3
  250. package/dist/src/engine/campaignTVL/implementations/Erc20/factory.js +0 -13
  251. package/dist/src/engine/campaignTVL/implementations/Erc20/index.d.ts +0 -6
  252. package/dist/src/engine/campaignTVL/implementations/Erc20/index.js +0 -34
  253. package/dist/src/engine/campaignTVL/implementations/UniswapV4.d.ts +0 -7
  254. package/dist/src/engine/dynamicData/implementations/CompoundV3.js +0 -69
  255. package/dist/src/engine/erc20SubTypeProcessors/helpers/ownerFinder.d.ts +0 -2
  256. package/dist/src/engine/opportunityMetadata/factory.js +0 -71
  257. package/dist/src/engine/opportunityMetadata/implementations/Default.d.ts +0 -13
  258. package/dist/src/engine/opportunityMetadata/implementations/ERC721.d.ts +0 -16
  259. package/dist/src/engine/opportunityMetadata/implementations/ERCMultiToken.d.ts +0 -28
  260. package/dist/src/engine/opportunityMetadata/implementations/Encompassing.d.ts +0 -15
  261. package/dist/src/engine/opportunityMetadata/implementations/Erc20/index.d.ts +0 -18
  262. package/dist/src/engine/opportunityMetadata/implementations/Erc20Snapshot.d.ts +0 -14
  263. package/dist/src/engine/opportunityMetadata/implementations/JsonAirdrop.d.ts +0 -23
  264. package/dist/src/entities/campaign.d.ts +0 -58
  265. package/dist/src/entities/campaign.js +0 -136
  266. package/dist/src/modules/v4/dynamicData/dynamicData.controller.d.ts +0 -51
  267. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +0 -19
  268. package/dist/src/modules/v4/dynamicData/dynamicData.repository.d.ts +0 -0
  269. package/dist/src/modules/v4/dynamicData/dynamicData.repository.js +0 -1
  270. package/dist/src/types/returnTypes.d.ts +0 -19
  271. package/dist/src/types/returnTypes.js +0 -1
  272. package/dist/src/types/utils.d.ts +0 -5
  273. package/dist/src/types/utils.js +0 -1
  274. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/factory.d.ts +0 -0
  275. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/factory.js +0 -0
  276. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Ajna.d.ts +0 -0
  277. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Badger.d.ts +0 -0
  278. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Badger.js +0 -0
  279. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Clamm.d.ts +0 -0
  280. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Compound.d.ts +0 -0
  281. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/CompoundV3.d.ts +0 -0
  282. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Dolomite.d.ts +0 -0
  283. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERC721.d.ts +0 -0
  284. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERCMultiToken.d.ts +0 -0
  285. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EigenLayer.d.ts +0 -0
  286. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Encompassing.d.ts +0 -0
  287. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Encompassing.js +0 -0
  288. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20Snapshot.d.ts +0 -0
  289. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EventBased.d.ts +0 -0
  290. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Hyperdrive.d.ts +0 -0
  291. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Hyperdrive.js +0 -0
  292. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Morpho.d.ts +0 -0
  293. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Radiant.d.ts +0 -0
  294. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Silo.d.ts +0 -0
  295. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/UniswapV4.d.ts +0 -0
  296. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Vest.d.ts +0 -0
  297. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/default.d.ts +0 -0
  298. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/default.js +0 -0
  299. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchA51Strategies.d.ts +0 -0
  300. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchClamInfo.d.ts +0 -0
  301. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchClamInfo.js +0 -0
  302. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchLogs.d.ts +0 -0
  303. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchLogs.js +0 -0
  304. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getCompV2ForksVaults.d.ts +0 -0
  305. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getCompV2ForksVaults.js +0 -0
  306. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getContractCreationBlock.d.ts +0 -0
  307. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getContractCreationBlock.js +0 -0
  308. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getDolomiteMarkets.d.ts +0 -0
  309. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getEulerV2Vaults.d.ts +0 -0
  310. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getFixedApr.d.ts +0 -0
  311. /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getFixedApr.js +0 -0
  312. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/GenericProcessor.js +0 -0
  313. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/eulerVaultNames.d.ts +0 -0
  314. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/eulerVaultNames.js +0 -0
  315. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.d.ts +0 -0
  316. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.js +0 -0
  317. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/metamorphoTvl.d.ts +0 -0
  318. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/metamorphoTvl.js +0 -0
  319. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/spliceTVL.d.ts +0 -0
  320. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/spliceTVL.js +0 -0
  321. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AaveProcessor.js +0 -0
  322. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AnglesLiquid.js +0 -0
  323. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AuraProcessor.js +0 -0
  324. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BEXRewardGaugeProcessor.js +0 -0
  325. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.js +0 -0
  326. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.js +0 -0
  327. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.js +0 -0
  328. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BeefyProcessor.js +0 -0
  329. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BunniV2Processor.js +0 -0
  330. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/CompoundProcessor.js +0 -0
  331. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ERC4626Processor.js +0 -0
  332. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EnzymeProcessor.js +0 -0
  333. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.js +0 -0
  334. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.js +0 -0
  335. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerLendProcessor.js +0 -0
  336. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FluidProcessor.js +0 -0
  337. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaALMProcessor.js +0 -0
  338. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaProcessor.js +0 -0
  339. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GearboxProcessor.js +0 -0
  340. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.js +0 -0
  341. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HoldStationProcessor.js +0 -0
  342. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HourglassProcessor.js +0 -0
  343. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.js +0 -0
  344. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.js +0 -0
  345. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleProcessor.js +0 -0
  346. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleYTProcessor.js +0 -0
  347. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RadiantProcessor.js +0 -0
  348. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RfxProcessor.js +0 -0
  349. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/Satlayer.js +0 -0
  350. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpliceProcessor.js +0 -0
  351. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.js +0 -0
  352. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TemplateProcessor.js +0 -0
  353. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TorosProcessor.js +0 -0
  354. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/UniswapProcessor.js +0 -0
  355. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/VicunaProcessor.js +0 -0
  356. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/WoofiProcessor.js +0 -0
  357. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.js +0 -0
  358. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.js +0 -0
  359. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/xU308Processor.js +0 -0
  360. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound1.d.ts +0 -0
  361. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound2.js +0 -0
  362. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound3.js +0 -0
  363. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound4.js +0 -0
  364. /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeStruct.js +0 -0
  365. /package/dist/src/engine/{opportunityMetadata/implementations/Invalid.js → implementations/Invalid/metadata.js} +0 -0
  366. /package/dist/src/engine/{opportunityMetadata → metadata}/factory.d.ts +0 -0
@@ -0,0 +1,98 @@
1
+ import { Erc20DynamicData } from "@/engine/deprecated/dynamicData/implementations/Erc20";
2
+ import { detectSubType } from "@/engine/implementations/Erc20/subTypes/detect";
3
+ import { log } from "@/utils/logger";
4
+ import { BN2Number, ChainInteractionService, ERC20Interface } from "@sdk";
5
+ import { erc20SubTypeTVLBuilderFactory } from "./subTypes/factories";
6
+ export class Erc20TVLBuilder {
7
+ async build(computeChainId, campaigns) {
8
+ const subTypes = await detectSubType(computeChainId, campaigns);
9
+ let tvls = [];
10
+ const promises = [];
11
+ const processSubtype = async (subType) => {
12
+ const builder = erc20SubTypeTVLBuilderFactory(subType);
13
+ const campaignsOfSubType = campaigns.filter((_campaign, index) => subTypes[index] === subType);
14
+ if (!!builder) {
15
+ log.info(`building TVLs for subtype ${subType}`);
16
+ const subTypeTVLs = await builder.build(computeChainId, campaignsOfSubType);
17
+ // Impact blacklist or whitelist
18
+ const calls = [];
19
+ for (const { campaign } of subTypeTVLs) {
20
+ const { campaignParameters } = campaign;
21
+ const { targetToken, whitelist, blacklist } = campaignParameters;
22
+ if (whitelist?.length > 0) {
23
+ calls.push({
24
+ allowFailure: true,
25
+ callData: ERC20Interface.encodeFunctionData("totalSupply"),
26
+ target: targetToken,
27
+ });
28
+ for (const address of whitelist) {
29
+ calls.push({
30
+ allowFailure: true,
31
+ callData: ERC20Interface.encodeFunctionData("balanceOf", [address]),
32
+ target: targetToken,
33
+ });
34
+ }
35
+ }
36
+ if (blacklist?.length > 0) {
37
+ calls.push({
38
+ allowFailure: true,
39
+ callData: ERC20Interface.encodeFunctionData("totalSupply"),
40
+ target: targetToken,
41
+ });
42
+ for (const address of blacklist) {
43
+ calls.push({
44
+ allowFailure: true,
45
+ callData: ERC20Interface.encodeFunctionData("balanceOf", [address]),
46
+ target: targetToken,
47
+ });
48
+ }
49
+ }
50
+ }
51
+ const result = await ChainInteractionService(computeChainId).fetchState(calls);
52
+ let index = 0;
53
+ for (const [i, { campaign }] of subTypeTVLs.entries()) {
54
+ const { campaignParameters } = campaign;
55
+ const { whitelist, blacklist } = campaignParameters;
56
+ if (whitelist?.length > 0) {
57
+ const totalSupply = BigInt(ERC20Interface.decodeFunctionResult("totalSupply", result[index++].returnData)[0].toString());
58
+ let whitelistedSupply = 0n;
59
+ for (const _address of whitelist) {
60
+ whitelistedSupply += BigInt(ERC20Interface.decodeFunctionResult("balanceOf", result[index++].returnData)[0].toString());
61
+ }
62
+ subTypeTVLs[i].tvl *= BN2Number((whitelistedSupply * 10n ** 6n) / totalSupply, 6);
63
+ }
64
+ if (blacklist?.length > 0) {
65
+ const totalSupply = BigInt(ERC20Interface.decodeFunctionResult("totalSupply", result[index++].returnData)[0].toString());
66
+ let blacklistedSupply = totalSupply;
67
+ for (const _address of blacklist) {
68
+ blacklistedSupply -= BigInt(ERC20Interface.decodeFunctionResult("balanceOf", result[index++].returnData)[0].toString());
69
+ }
70
+ subTypeTVLs[i].tvl *= BN2Number((blacklistedSupply * 10n ** 6n) / totalSupply, 6);
71
+ }
72
+ }
73
+ tvls = tvls.concat(subTypeTVLs);
74
+ }
75
+ else {
76
+ // @deprecated In case we don't have the new builder, use the old erc20 dynamic data
77
+ const dynamicDataList = await new Erc20DynamicData().build(computeChainId, campaignsOfSubType);
78
+ if (dynamicDataList.length !== campaignsOfSubType.length) {
79
+ throw new Error("Erc20TVLBuilder: dynamicDataList.length !== campaignsOfSubType.length");
80
+ }
81
+ for (const [index, dynamicData] of dynamicDataList.entries()) {
82
+ tvls.push({
83
+ campaign: campaignsOfSubType[index],
84
+ tvl: dynamicData.tvl,
85
+ displayTvl: dynamicData.displayTvl ?? undefined,
86
+ tvlBreakdown: [],
87
+ });
88
+ }
89
+ }
90
+ return;
91
+ };
92
+ for (const subType of new Set(subTypes)) {
93
+ promises.push(processSubtype(subType));
94
+ }
95
+ await Promise.allSettled(promises);
96
+ return tvls;
97
+ }
98
+ }
@@ -0,0 +1,15 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import type { Campaign as CampaignEnum } from "@sdk";
4
+ type campaignType = CampaignEnum.ERC20_SNAPSHOT;
5
+ export declare class Erc20SnapshotMetadata implements MetadataBuilder<campaignType> {
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
+ name: string;
8
+ action: "DROP";
9
+ tokens: {
10
+ chainId: number;
11
+ address: any;
12
+ }[];
13
+ }>;
14
+ }
15
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  export class Erc20SnapshotMetadata {
3
- async build(computeChainId, params) {
3
+ async build(campaign) {
4
+ const { params, computeChainId } = campaign;
4
5
  return {
5
6
  name: ["Get", params.symbolTargetToken, "airdrop"].join(" "),
6
7
  action: OpportunityAction.DROP,
@@ -0,0 +1,17 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import type { Campaign as CampaignEnum } from "@sdk";
4
+ type campaignType = CampaignEnum.ERC721 | CampaignEnum.ERC721FIXAPR;
5
+ export declare class Erc721Metadata implements MetadataBuilder<campaignType> {
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
+ action: "HOLD";
8
+ name: string;
9
+ tokens: {
10
+ chainId: number;
11
+ address: any;
12
+ }[];
13
+ mainProtocol: undefined;
14
+ depositUrl: undefined;
15
+ }>;
16
+ }
17
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { OpportunityAction } from "@db/api";
2
- export class ERC721Metadata {
3
- async build(computeChainId, params) {
2
+ export class Erc721Metadata {
3
+ async build(campaign) {
4
+ const { params, computeChainId } = campaign;
4
5
  return {
5
6
  action: OpportunityAction.HOLD,
6
7
  name: `Hold ${params.symbolTargetToken}`,
@@ -0,0 +1,29 @@
1
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
2
+ import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
3
+ import { type Campaign as CampaignEnum } from "@sdk";
4
+ import type { MetadataBuilder } from "../../metadata/interface";
5
+ type campaignType = CampaignEnum.ERC1155 | CampaignEnum.ERC1155FIXAPR | CampaignEnum.ERC6909 | CampaignEnum.ERC6909FIXAPR;
6
+ export declare class ErcMultiTokenMetadata implements MetadataBuilder<campaignType> {
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
8
+ action: "HOLD";
9
+ name: string;
10
+ tokens: {
11
+ chainId: number;
12
+ address: any;
13
+ }[];
14
+ explorerAddress: any;
15
+ mainProtocol: ProtocolId;
16
+ depositUrl: string;
17
+ } | {
18
+ action: "HOLD";
19
+ name: string;
20
+ tokens: {
21
+ chainId: number;
22
+ address: any;
23
+ }[];
24
+ explorerAddress: any;
25
+ mainProtocol: undefined;
26
+ depositUrl: undefined;
27
+ }>;
28
+ }
29
+ export {};
@@ -1,9 +1,10 @@
1
1
  import { OpportunityAction } from "@db/api";
2
- import { ChainInteractionService, TokenInteractionService, } from "@sdk";
2
+ import { ChainInteractionService, TokenInteractionService } from "@sdk";
3
3
  import { utils } from "ethers";
4
- export class ERCMultiTokenMetadata {
5
- async build(computeChainId, params) {
6
- const { targetToken, tokenId } = params;
4
+ export class ErcMultiTokenMetadata {
5
+ async build(campaign) {
6
+ const { params, computeChainId } = campaign;
7
+ const { tokenId, targetToken } = params;
7
8
  // Sonic Market Case
8
9
  try {
9
10
  const BOOK_MANAGER = "0xD4aD5Ed9E1436904624b6dB8B1BE31f36317C636";
@@ -1,12 +1,13 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
4
  import { Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
4
5
  type campaignType = CampaignEnum.EULER;
5
6
  export declare class EulerMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], subType: CampaignParameters<campaignType>["campaignSubType"], rewardTokenAddress: string, distributionChainId: ChainId, campaignId: string): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  name: string;
8
9
  tokens: {
9
- chainId: ChainId;
10
+ chainId: number;
10
11
  address: any;
11
12
  }[];
12
13
  action: "LEND" | "BORROW";
@@ -1,17 +1,18 @@
1
- import { dynamicDataBuilderFactory } from "@/engine/dynamicData/factory";
1
+ import { dynamicDataBuilderFactory } from "@/engine/deprecated/dynamicData/factory";
2
2
  import { log } from "@/utils/logger";
3
3
  import { sanitizeChainName } from "@/utils/sanitizeChain";
4
4
  import { OpportunityAction } from "@db/api";
5
5
  import { Campaign as CampaignEnum } from "@sdk";
6
6
  import { getAddress } from "viem";
7
7
  export class EulerMetadata {
8
- async build(computeChainId, params, subType, rewardTokenAddress, distributionChainId, campaignId) {
8
+ async build(campaign) {
9
+ const { params, computeChainId, campaignId, rewardToken, distributionChainId, subType } = campaign;
9
10
  let name = `Hold ${params.symbolTargetToken}`;
10
11
  try {
11
12
  const [dynamicData] = await dynamicDataBuilderFactory(CampaignEnum.EULER).build(computeChainId, [
12
13
  {
13
14
  campaignId,
14
- rewardToken: rewardTokenAddress,
15
+ rewardToken: rewardToken.address,
15
16
  amount: "1",
16
17
  chainId: distributionChainId,
17
18
  computeChainId,
@@ -29,7 +30,7 @@ export class EulerMetadata {
29
30
  { chainId: computeChainId, address: params.targetToken },
30
31
  { chainId: computeChainId, address: params.addressAsset },
31
32
  ],
32
- action: [OpportunityAction.LEND, OpportunityAction.BORROW, OpportunityAction.BORROW][subType],
33
+ action: [OpportunityAction.LEND, OpportunityAction.BORROW, OpportunityAction.BORROW][subType ?? 0],
33
34
  mainProtocol: "euler",
34
35
  depositUrl: EulerMetadata.generateUrl(computeChainId, params),
35
36
  explorerAddress: getAddress(params.targetToken),
@@ -1,12 +1,13 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
2
- import type { MetadataBuilder } from "../interface";
3
4
  type campaignType = CampaignEnum.EVENT_BASED;
4
5
  export declare class EventBasedMetadata implements MetadataBuilder<campaignType> {
5
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], _subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
6
7
  action: "SWAP";
7
8
  name: string;
8
9
  tokens: {
9
- chainId: ChainId;
10
+ chainId: number;
10
11
  address: any;
11
12
  }[];
12
13
  mainProtocol: "hanji";
@@ -1,6 +1,7 @@
1
1
  import { capitalize } from "@/utils/caseChanges";
2
2
  export class EventBasedMetadata {
3
- async build(computeChainId, params, _subType) {
3
+ async build(campaign) {
4
+ const { params, computeChainId } = campaign;
4
5
  try {
5
6
  const action = "SWAP";
6
7
  const mainProtocolId = "hanji";
@@ -1,13 +1,14 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
4
  import { type Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
4
5
  type campaignType = CampaignEnum.HYPERDRIVELOGPROCESSOR | CampaignEnum.HYPERDRIVELOGFIXPROCESSOR;
5
6
  export declare class HyperdriveMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  action: "POOL" | "LONG" | "SHORT";
8
9
  name: string;
9
10
  tokens: {
10
- chainId: ChainId;
11
+ chainId: number;
11
12
  address: any;
12
13
  }[];
13
14
  mainProtocol: ProtocolId;
@@ -2,13 +2,14 @@ import { OpportunityAction } from "@db/api";
2
2
  import { HyperDriveSubCampaignType } from "@sdk";
3
3
  import { getAddress } from "viem";
4
4
  export class HyperdriveMetadata {
5
- async build(computeChainId, params, subType) {
5
+ async build(campaign) {
6
+ let { params, computeChainId, subType } = campaign;
6
7
  const subtypes = [
7
8
  { name: "Add Liquidity on", action: OpportunityAction.POOL },
8
9
  { name: "Open Long on", action: OpportunityAction.LONG },
9
10
  { name: "Open Short on", action: OpportunityAction.SHORT },
10
11
  ];
11
- if (subType === HyperDriveSubCampaignType.LP) {
12
+ if (!subType || subType === HyperDriveSubCampaignType.LP) {
12
13
  subType = 0;
13
14
  }
14
15
  const subtypeData = subtypes[subType];
@@ -1,5 +1,5 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
1
2
  import type { Campaign as CampaignEnum } from "@sdk";
2
- import type { MetadataBuilder } from "../interface";
3
3
  type campaignType = CampaignEnum.INVALID;
4
4
  export declare class InvalidMetadata implements MetadataBuilder<campaignType> {
5
5
  build(): Promise<{
@@ -1,14 +1,14 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
4
  import type { Campaign as CampaignEnum } from "@sdk";
3
- import type { CampaignParameters, ChainId } from "@sdk";
4
- import type { MetadataBuilder } from "../interface";
5
5
  type campaignType = CampaignEnum.ION;
6
6
  export declare class IonMetadata implements MetadataBuilder<campaignType> {
7
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
8
8
  action: "LEND";
9
9
  name: string;
10
10
  tokens: {
11
- chainId: ChainId;
11
+ chainId: number;
12
12
  address: any;
13
13
  }[];
14
14
  mainProtocol: ProtocolId;
@@ -1,6 +1,7 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  export class IonMetadata {
3
- async build(computeChainId, params) {
3
+ async build(campaign) {
4
+ const { params, computeChainId } = campaign;
4
5
  // TODO this is not finalized at all
5
6
  return {
6
7
  action: OpportunityAction.LEND,
@@ -0,0 +1,24 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
4
+ type campaignType = CampaignEnum.JSON_AIRDROP;
5
+ export declare class JsonAirdropMetadata implements MetadataBuilder<campaignType> {
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
+ action: "DROP";
8
+ name: string;
9
+ tokens: {
10
+ chainId: number;
11
+ address: string;
12
+ }[];
13
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "aura" | "poolside" | "gearbox" | "filament" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fraxlend" | "fenix" | "ra" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "toros" | "akron" | "enzyme" | "dragonswap" | "koi" | "rfx" | "woofi" | "pendle" | "zkSwapThreePool" | "maha" | "tempest" | "holdstation" | "venus" | "reactor_fusion" | "vicuna" | "curveNPool" | "satlayer" | "veda" | "cian" | "concrete" | "hourglass" | "katana" | "gamma" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "balancer" | "cross_curve" | "neptune" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "ironclad" | "sturdy" | "frax" | "silo" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "oku" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "angles" | "bunni" | "beratrax" | "yei" | "gammaswap" | "uranium" | undefined;
14
+ depositUrl?: undefined;
15
+ } | {
16
+ action: "DROP";
17
+ name: string;
18
+ tokens: never[];
19
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "aura" | "poolside" | "gearbox" | "filament" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fraxlend" | "fenix" | "ra" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "toros" | "akron" | "enzyme" | "dragonswap" | "koi" | "rfx" | "woofi" | "pendle" | "zkSwapThreePool" | "maha" | "tempest" | "holdstation" | "venus" | "reactor_fusion" | "vicuna" | "curveNPool" | "satlayer" | "veda" | "cian" | "concrete" | "hourglass" | "katana" | "gamma" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "balancer" | "cross_curve" | "neptune" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "ironclad" | "sturdy" | "frax" | "silo" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "oku" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "angles" | "bunni" | "beratrax" | "yei" | "gammaswap" | "uranium" | undefined;
20
+ depositUrl: any;
21
+ }>;
22
+ static generateUrl(_computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): any;
23
+ }
24
+ export {};
@@ -1,11 +1,12 @@
1
1
  import { log } from "@/utils/logger";
2
2
  import { OpportunityAction } from "@db/api";
3
3
  export class JsonAirdropMetadata {
4
- async build(computeChainId, params, _subType, _rewardTokenAddress, _distributionChainId, _campaignId, creator) {
4
+ async build(campaign) {
5
+ const { params, computeChainId, creatorAddress } = campaign;
5
6
  const ACI = "0xdeadD8aB03075b7FBA81864202a2f59EE25B312b".toLowerCase();
6
7
  const aaveDAO = "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A".toLowerCase();
7
- const aciPrefix = creator.toLowerCase() === ACI && "Get Merit rewards -";
8
- const aavePrefix = creator.toLowerCase() === aaveDAO && "Get aAMPL distribution -";
8
+ const aciPrefix = creatorAddress.toLowerCase() === ACI && "Get Merit rewards -";
9
+ const aavePrefix = creatorAddress.toLowerCase() === aaveDAO && "Get aAMPL distribution -";
9
10
  const prefix = aavePrefix ? aavePrefix : aciPrefix ? aciPrefix : "Get airdrop in";
10
11
  let tokenAddress;
11
12
  try {
@@ -1,13 +1,14 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
4
  import { type Campaign as CampaignEnum, type CampaignParameters, ChainId } from "@sdk";
3
5
  import type { BigNumberish } from "ethers";
4
- import type { MetadataBuilder } from "../interface";
5
6
  type campaignType = CampaignEnum.MORPHO;
6
7
  export declare class MorphoMetadata implements MetadataBuilder<campaignType> {
7
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
8
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
8
9
  action: "LEND" | "BORROW";
9
10
  tokens: {
10
- chainId: ChainId;
11
+ chainId: number;
11
12
  address: any;
12
13
  }[];
13
14
  name: string;
@@ -2,7 +2,10 @@ import { OpportunityAction } from "@db/api";
2
2
  import { BN2Number, ChainId, MorphoSubCampaignType, NETWORK_LABELS, } from "@sdk";
3
3
  import { getAddress } from "viem";
4
4
  export class MorphoMetadata {
5
- async build(computeChainId, params, subType) {
5
+ async build(campaign) {
6
+ let { params, computeChainId, subType } = campaign;
7
+ if (!subType)
8
+ subType = 0;
6
9
  const morphoParams = params;
7
10
  const market = `${morphoParams.symbolLoanToken}/${morphoParams.symbolBorrowToken} ${morphoParams?.LLTV && BN2Number(morphoParams?.LLTV, 16)}%`;
8
11
  const subtypes = [
@@ -1,13 +1,14 @@
1
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
2
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
- import { type Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
3
+ import { type Campaign as CampaignEnum } from "@sdk";
4
+ import type { MetadataBuilder } from "../../metadata/interface";
4
5
  type campaignType = CampaignEnum.RADIANT;
5
6
  export declare class RadiantMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  action: "LEND" | "BORROW";
8
9
  name: string;
9
10
  tokens: {
10
- chainId: ChainId;
11
+ chainId: number;
11
12
  address: any;
12
13
  }[];
13
14
  mainProtocol: ProtocolId;
@@ -3,7 +3,10 @@ import { OpportunityAction } from "@db/api";
3
3
  import { ChainInteractionService, NETWORK_LABELS, RadiantInterface, } from "@sdk";
4
4
  import { getAddress } from "viem";
5
5
  export class RadiantMetadata {
6
- async build(computeChainId, params, subType) {
6
+ async build(campaign) {
7
+ let { params, computeChainId, subType } = campaign;
8
+ if (!subType)
9
+ subType = 0;
7
10
  const tokens = [{ chainId: computeChainId, address: params.targetToken }];
8
11
  try {
9
12
  const result = await ChainInteractionService(computeChainId).fetchState([
@@ -1,13 +1,14 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
- import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
4
+ import type { Campaign as CampaignEnum } from "@sdk";
4
5
  type campaignType = CampaignEnum.SILO;
5
6
  export declare class SiloMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  action: "LEND" | "BORROW";
8
9
  name: string;
9
10
  tokens: {
10
- chainId: ChainId;
11
+ chainId: number;
11
12
  address: any;
12
13
  }[];
13
14
  mainProtocol: ProtocolId;
@@ -1,7 +1,10 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  import { getAddress } from "viem";
3
3
  export class SiloMetadata {
4
- async build(computeChainId, params, subType) {
4
+ async build(campaign) {
5
+ let { params, computeChainId, subType } = campaign;
6
+ if (!subType)
7
+ subType = 0;
5
8
  let suffix = ["Deposit", "Protected Deposit", "Debt"][subType];
6
9
  const assetSymbol = params.symbolTargetToken;
7
10
  if (params.forwarders.length === 1 && assetSymbol)
@@ -1,13 +1,14 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
4
  import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
4
5
  type campaignType = CampaignEnum.UNISWAP_V4;
5
6
  export declare class UniswapV4Metadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"], _subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  name: string;
8
9
  action: "POOL";
9
10
  tokens: {
10
- chainId: ChainId;
11
+ chainId: number;
11
12
  address: any;
12
13
  }[];
13
14
  mainProtocol: ProtocolId;
@@ -2,7 +2,8 @@ import { sanitizeChainName } from "@/utils/sanitizeChain";
2
2
  import { OpportunityAction } from "@db/api";
3
3
  import { getAddress } from "viem";
4
4
  export class UniswapV4Metadata {
5
- async build(computeChainId, params, _subType) {
5
+ async build(campaign) {
6
+ const { params, computeChainId } = campaign;
6
7
  const whitelistNameString = "";
7
8
  // if (params.whitelist.length > 0) {
8
9
  // for (const whitelist of params.whitelist) {
@@ -0,0 +1,7 @@
1
+ import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
2
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
3
+ type campaignType = Campaign.UNISWAP_V4;
4
+ export declare class UniswapV4TVLBuilder implements TVLBuilder<campaignType> {
5
+ build(computeChainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData<Campaign.UNISWAP_V4>>;
6
+ }
7
+ export {};
@@ -1,23 +1,23 @@
1
1
  import { BucketService } from "@/modules/v4/bucket/bucket.service";
2
2
  import { TokenService } from "@/modules/v4/token/token.service";
3
+ import { log } from "@/utils/logger";
3
4
  import { engineDbClient } from "@db";
4
5
  import { TvlType } from "@db/api";
5
6
  import { BN2Number, ChainInteractionService, NETWORK_LABELS, } from "@sdk";
6
- import { log } from "../../../utils/logger";
7
7
  /**
8
8
  * Compute TVL
9
9
  * @dev important: using the most recent state save with current prices
10
10
  * it's only an estimate
11
11
  */
12
- async function computeUniV4PoolTVLFromMostRecentStateSave(chainId, poolID) {
12
+ async function computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, poolID) {
13
13
  let stateSave;
14
14
  let blockNumber;
15
15
  let states = {};
16
16
  try {
17
- const currentBlock = await ChainInteractionService(chainId).getBlockNumber();
17
+ const currentBlock = await ChainInteractionService(computeChainId).getBlockNumber();
18
18
  const mostRecentStateSave = await engineDbClient.stateSave.findFirst({
19
19
  where: {
20
- id: `UniswapV4_${chainId}_${poolID}`,
20
+ id: `UniswapV4_${computeChainId}_${poolID}`,
21
21
  blockNumber: {
22
22
  lte: currentBlock,
23
23
  },
@@ -31,7 +31,7 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(chainId, poolID) {
31
31
  states = stateSave.states;
32
32
  }
33
33
  catch {
34
- log.warn(`merklDynamic data - failed to read a recent state of pool ${poolID} on ${NETWORK_LABELS[chainId]}`);
34
+ log.warn(`merklDynamic data - failed to read a recent state of pool ${poolID} on ${NETWORK_LABELS[computeChainId]}`);
35
35
  return { amount0: 0n, amount1: 0n, blockNumber: blockNumber ?? 0 };
36
36
  }
37
37
  const { fileName } = states;
@@ -47,21 +47,21 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(chainId, poolID) {
47
47
  }
48
48
  }
49
49
  catch {
50
- log.warn(`merklDynamic data - failed to decode state of pool ${poolID} on ${NETWORK_LABELS[chainId]}`);
50
+ log.warn(`merklDynamic data - failed to decode state of pool ${poolID} on ${NETWORK_LABELS[computeChainId]}`);
51
51
  }
52
52
  return { amount0, amount1, blockNumber: blockNumber };
53
53
  }
54
- export class UniswapV4CampaignTVLBuilder {
55
- async build(chainId, campaigns) {
54
+ export class UniswapV4TVLBuilder {
55
+ async build(computeChainId, campaigns) {
56
56
  const tvls = [];
57
57
  for (const campaign of campaigns) {
58
- const { amount0: poolBalanceToken0, amount1: poolBalanceToken1 } = await computeUniV4PoolTVLFromMostRecentStateSave(chainId, campaign.campaignParameters.poolId);
58
+ const { amount0: poolBalanceToken0, amount1: poolBalanceToken1 } = await computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, campaign.campaignParameters.poolId);
59
59
  const token0Id = TokenService.hashId({
60
- chainId,
60
+ chainId: computeChainId,
61
61
  address: campaign.campaignParameters.currency0,
62
62
  });
63
63
  const token1Id = TokenService.hashId({
64
- chainId,
64
+ chainId: computeChainId,
65
65
  address: campaign.campaignParameters.currency1,
66
66
  });
67
67
  tvls.push({
@@ -1,13 +1,14 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
3
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
- import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
4
+ import type { Campaign as CampaignEnum } from "@sdk";
4
5
  type campaignType = CampaignEnum.VEST;
5
6
  export declare class VestMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, _params: CampaignParameters<campaignType>["campaignParameters"], _subType: CampaignParameters<campaignType>["campaignSubType"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  action: "LEND";
8
9
  name: string;
9
10
  tokens: {
10
- chainId: ChainId;
11
+ chainId: number;
11
12
  address: string;
12
13
  }[];
13
14
  mainProtocol: ProtocolId;