@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
@@ -2,7 +2,8 @@ import { OpportunityAction } from "@db/api";
2
2
  import { NETWORK_LABELS, almName, } from "@sdk";
3
3
  import { getAddress } from "viem";
4
4
  export class AmbientMetadata {
5
- async build(computeChainId, params, _subType) {
5
+ async build(campaign) {
6
+ const { params, computeChainId } = campaign;
6
7
  const platform = "Ambient";
7
8
  let whitelistNameString = "";
8
9
  if (params.whitelist.length > 0) {
@@ -1,7 +1,7 @@
1
+ import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
1
2
  import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
- import type { CampaignTVLBuilder, TVLData } from "../interface";
3
3
  type campaignType = Campaign.AMBIENTPROCESSOR;
4
- export declare class AmbiantCampaignTVLBuilder implements CampaignTVLBuilder<campaignType> {
5
- build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData>;
4
+ export declare class AmbiantTVLBuilder implements TVLBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData<Campaign.AMBIENTPROCESSOR>>;
6
6
  }
7
7
  export {};
@@ -1,8 +1,8 @@
1
1
  import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { log } from "@/utils/logger";
2
3
  import { TvlType } from "@db/api";
3
4
  import { AmbientAddresses, AmbientLens, BN2Number, ChainInteractionService, NETWORK_LABELS, subgraphAmbientEndpoints, withRetry, } from "@sdk";
4
5
  import request, { gql } from "graphql-request";
5
- import { log } from "../../../utils/logger";
6
6
  var AmbiantPositionType;
7
7
  (function (AmbiantPositionType) {
8
8
  AmbiantPositionType["Concentrated"] = "concentrated";
@@ -121,7 +121,7 @@ async function fetchAmbientPotentialPositions(poolId, chainId) {
121
121
  holders = Array.from(new Set(holders.map(h => JSON.stringify(h)))).map(h => JSON.parse(h));
122
122
  return holders;
123
123
  }
124
- export class AmbiantCampaignTVLBuilder {
124
+ export class AmbiantTVLBuilder {
125
125
  async build(chainId, campaigns) {
126
126
  const tvls = [];
127
127
  let calls = [];
@@ -1,13 +1,14 @@
1
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
1
2
  import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
2
3
  import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
3
- import type { MetadataBuilder } from "../interface";
4
+ import type { MetadataBuilder } from "../../metadata/interface";
4
5
  type campaignType = CampaignEnum.BADGER;
5
6
  export declare class BadgerMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): Promise<{
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
8
  action: "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,8 @@
1
1
  import { TokenService } from "@/modules/v4/token/token.service";
2
2
  import { OpportunityAction } from "@db/api";
3
3
  export class BadgerMetadata {
4
- async build(computeChainId, params) {
4
+ async build(campaign) {
5
+ const { params, computeChainId } = campaign;
5
6
  try {
6
7
  const [token] = await TokenService.findManyOrCreate([{ chainId: computeChainId, address: params.targetToken }]);
7
8
  if (!token)
@@ -1,6 +1,7 @@
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
- import type { MetadataBuilder } from "../interface";
4
5
  type campaignType = CampaignEnum.CLAMM;
5
6
  export declare const uniswapV3OkuChains: {
6
7
  [ChainId.BLAST]: string;
@@ -28,11 +29,11 @@ export declare const sushiswapv3Chains: {
28
29
  [C in ChainId]?: string;
29
30
  };
30
31
  export declare class ClammMetadata implements MetadataBuilder<campaignType> {
31
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): Promise<{
32
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
32
33
  name: string;
33
34
  action: "POOL";
34
35
  tokens: {
35
- chainId: ChainId;
36
+ chainId: number;
36
37
  address: any;
37
38
  }[];
38
39
  mainProtocol: ProtocolId;
@@ -35,7 +35,8 @@ export const sushiswapv3Chains = {
35
35
  [ChainId.SKALE]: "skale-europa",
36
36
  };
37
37
  export class ClammMetadata {
38
- async build(computeChainId, params) {
38
+ async build(campaign) {
39
+ const { params, computeChainId } = campaign;
39
40
  let platform = ammName(params.amm);
40
41
  if (platform === "BaseSwap") {
41
42
  switch (computeChainId) {
@@ -1,13 +1,14 @@
1
- import { type Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import { type Campaign as CampaignEnum } from "@sdk";
2
4
  import type { ProtocolId } from "../../../modules/v4/protocol/protocol.model";
3
- import type { MetadataBuilder } from "../interface";
4
5
  type campaignType = CampaignEnum.COMPOUND;
5
6
  export declare class CompoundMetadata 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,8 +1,9 @@
1
1
  import { camelToKebabCase } from "@/utils/caseChanges";
2
2
  import { OpportunityAction } from "@db/api";
3
- import { CompFork, CompoundSubCampaignType, } from "@sdk";
3
+ import { CompFork, CompoundSubCampaignType } from "@sdk";
4
4
  export class CompoundMetadata {
5
- async build(computeChainId, params, subType) {
5
+ async build(campaign) {
6
+ const { params, computeChainId, subType } = campaign;
6
7
  return {
7
8
  action: subType === CompoundSubCampaignType.supply ? OpportunityAction.LEND : OpportunityAction.BORROW,
8
9
  name: [
@@ -1,13 +1,14 @@
1
- import { type Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import { type Campaign as CampaignEnum } from "@sdk";
2
4
  import type { ProtocolId } from "../../../modules/v4/protocol/protocol.model";
3
- import type { MetadataBuilder } from "../interface";
4
5
  type campaignType = CampaignEnum.COMPOUND_V3;
5
6
  export declare class CompoundV3Metadata 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,12 +1,13 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  import { CompoundV3SubCampaignType } from "@sdk";
3
3
  export class CompoundV3Metadata {
4
- async build(computeChainId, params, subType) {
4
+ async build(campaign) {
5
+ const { params, computeChainId } = campaign;
5
6
  const symbolUnderlyingToken = params.symbolTargetToken.slice(1, -2);
6
7
  return {
7
- action: subType === CompoundV3SubCampaignType.SUPPLY ? OpportunityAction.LEND : OpportunityAction.BORROW,
8
+ action: params.subCampaignType === CompoundV3SubCampaignType.SUPPLY ? OpportunityAction.LEND : OpportunityAction.BORROW,
8
9
  name: [
9
- subType === CompoundV3SubCampaignType.SUPPLY
10
+ params.subCampaignType === CompoundV3SubCampaignType.SUPPLY
10
11
  ? `Supply ${symbolUnderlyingToken} on`
11
12
  : `Borrow ${symbolUnderlyingToken} on`,
12
13
  "Compound V3",
@@ -0,0 +1,13 @@
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;
5
+ export declare class DefaultMetadata implements MetadataBuilder<campaignType> {
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
+ action: "HOLD";
8
+ name: string;
9
+ tokens: never[];
10
+ explorerAddress: string;
11
+ }>;
12
+ }
13
+ export {};
@@ -1,11 +1,12 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  export class DefaultMetadata {
3
- async build(_computeChainId, _params, _subType, rewardTokenAddress) {
3
+ async build(campaign) {
4
+ const { rewardToken } = campaign;
4
5
  return {
5
6
  action: OpportunityAction.HOLD,
6
7
  name: "Reward Opportunity",
7
8
  tokens: [],
8
- explorerAddress: rewardTokenAddress,
9
+ explorerAddress: rewardToken.address,
9
10
  };
10
11
  }
11
12
  }
@@ -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
- 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.DOLOMITE;
5
6
  export declare class DolomiteMetadata 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
  tokens: {
9
- chainId: ChainId;
10
+ chainId: number;
10
11
  address: any;
11
12
  }[];
12
13
  name: string;
@@ -1,13 +1,14 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  import { getAddress } from "viem";
3
3
  export class DolomiteMetadata {
4
- async build(computeChainId, params, subType) {
4
+ async build(campaign) {
5
+ const { params, computeChainId, subType } = campaign;
5
6
  const subtypes = [
6
7
  { name: "Supply (delta)", action: OpportunityAction.LEND },
7
8
  { name: "Supply", action: OpportunityAction.LEND },
8
9
  { name: "Borrow", action: OpportunityAction.BORROW },
9
10
  ];
10
- const subtype = subtypes[subType];
11
+ const subtype = subtypes[subType ?? 0];
11
12
  return {
12
13
  action: subtype.action,
13
14
  tokens: [{ chainId: computeChainId, address: params.targetToken }],
@@ -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.EIGENLAYER;
5
6
  export declare class EigenLayerMetadata implements MetadataBuilder<campaignType> {
6
- build(computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): 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: any;
12
13
  }[];
13
14
  mainProtocol: ProtocolId;
@@ -1,6 +1,7 @@
1
1
  import { OpportunityAction } from "@db/api";
2
2
  export class EigenLayerMetadata {
3
- async build(computeChainId, params) {
3
+ async build(campaign) {
4
+ const { params, computeChainId } = campaign;
4
5
  return {
5
6
  action: OpportunityAction.LEND,
6
7
  name: ["EigenLayer", "strategy for", params.symbolUnderlyingToken].join(" "),
@@ -0,0 +1,16 @@
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.ENCOMPASSING;
5
+ export declare class EncompassingMetadata implements MetadataBuilder<campaignType> {
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
7
+ action: "DROP";
8
+ name: any;
9
+ tokens: {
10
+ chainId: number;
11
+ address: string;
12
+ }[];
13
+ mainProtocol: any;
14
+ }>;
15
+ }
16
+ export {};
@@ -2,7 +2,8 @@ import { protocolIdList } from "@/modules/v4/protocol/protocol.model";
2
2
  import { log } from "@/utils/logger";
3
3
  import { OpportunityAction } from "@db/api";
4
4
  export class EncompassingMetadata {
5
- async build(computeChainId, params, _subType, rewardTokenAddress) {
5
+ async build(campaign) {
6
+ const { params, computeChainId, rewardToken } = campaign;
6
7
  try {
7
8
  const dataResponse = await fetch(params.dataUrl);
8
9
  if (!dataResponse.ok)
@@ -18,7 +19,7 @@ export class EncompassingMetadata {
18
19
  tokens: [
19
20
  {
20
21
  chainId: computeChainId,
21
- address: rewardTokenAddress,
22
+ address: rewardToken.address,
22
23
  },
23
24
  ],
24
25
  mainProtocol: data.mainProtocol ?? undefined,
@@ -32,7 +33,7 @@ export class EncompassingMetadata {
32
33
  tokens: [
33
34
  {
34
35
  chainId: computeChainId,
35
- address: rewardTokenAddress,
36
+ address: rewardToken.address,
36
37
  },
37
38
  ],
38
39
  mainProtocol: undefined,
@@ -0,0 +1,29 @@
1
+ import type { Erc20LikeCampaignEnum } from "@/engine/implementations/Erc20/subTypes";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import type { OpportunityAction } from "@db/api";
4
+ import type { MetadataBuilder } from "../../metadata/interface";
5
+ type campaignType = Erc20LikeCampaignEnum;
6
+ export declare class Erc20Metadata implements MetadataBuilder<campaignType> {
7
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">, opportunityIdentifier: string): Promise<{
8
+ name: string;
9
+ action: OpportunityAction;
10
+ tokens: {
11
+ chainId: number;
12
+ address: string;
13
+ }[];
14
+ mainProtocol?: import("../../../modules/v4/protocol/protocol.model").ProtocolId;
15
+ depositUrl?: string;
16
+ explorerAddress?: string;
17
+ } | {
18
+ action: import("@db/api").$Enums.OpportunityAction;
19
+ name: string;
20
+ tokens: {
21
+ chainId: number;
22
+ address: any;
23
+ }[];
24
+ mainProtocol: any;
25
+ depositUrl: string;
26
+ explorerAddress: `0x${string}`;
27
+ }>;
28
+ }
29
+ export {};
@@ -1,20 +1,33 @@
1
- import { dynamicDataBuilderFactory } from "@/engine/dynamicData/factory";
1
+ import { dynamicDataBuilderFactory } from "@/engine/deprecated/dynamicData/factory";
2
+ import { OpportunityConvertorService } from "@/modules/v4/opportunity/opportunity.converter";
2
3
  import { log } from "@/utils/logger";
3
- import { Campaign as CampaignEnum, } from "@sdk";
4
+ import { Campaign as CampaignEnum } from "@sdk";
4
5
  import { getAddress } from "viem";
5
- import { ProtocolService } from "../../../../modules/v4/protocol/protocol.service";
6
+ import { ProtocolService } from "../../../modules/v4/protocol/protocol.service";
7
+ import { detectSubType } from "./subTypes/detect";
8
+ import { erc20SubTypeMetadataBuilderFactory } from "./subTypes/factories";
6
9
  export class Erc20Metadata {
7
- async build(computeChainId, params, _subType, rewardTokenAddress, distributionChainId, campaignId) {
10
+ async build(campaign, opportunityIdentifier) {
11
+ const { params, computeChainId, campaignId, rewardToken, distributionChainId, type } = campaign;
12
+ const [subType] = await detectSubType(computeChainId, [
13
+ OpportunityConvertorService.convertV4CampaignToV3(CampaignEnum[type], campaign, opportunityIdentifier),
14
+ ]);
15
+ log.info(`building metadata for subtype ${subType}`);
16
+ const builder = erc20SubTypeMetadataBuilderFactory(subType);
17
+ if (!!builder) {
18
+ return builder.build(campaign, opportunityIdentifier);
19
+ }
20
+ // @deprecated
8
21
  let action = "HOLD";
9
22
  let name = `Hold ${params.symbolTargetToken}`;
10
23
  let mainProtocolId = undefined;
11
- let depositUrl = params.url;
24
+ const depositUrl = params?.url;
12
25
  let tokens = [{ chainId: computeChainId, address: params.targetToken }];
13
26
  try {
14
27
  const [dynamicData] = await dynamicDataBuilderFactory(CampaignEnum.ERC20).build(computeChainId, [
15
28
  {
16
29
  campaignId,
17
- rewardToken: rewardTokenAddress,
30
+ rewardToken: rewardToken.address,
18
31
  amount: "1",
19
32
  chainId: distributionChainId,
20
33
  computeChainId,
@@ -32,7 +45,6 @@ export class Erc20Metadata {
32
45
  if (!!protocol) {
33
46
  mainProtocolId = protocol?.id;
34
47
  }
35
- depositUrl = Erc20Metadata.generateUrl(computeChainId, params, dynamicData);
36
48
  }
37
49
  catch {
38
50
  log.warn(`failed to fetch dynamic data for ERC20 campaign ${campaignId}`);
@@ -49,11 +61,4 @@ export class Erc20Metadata {
49
61
  explorerAddress: getAddress(params.targetToken),
50
62
  };
51
63
  }
52
- static generateUrl(_computeChainId, params, dynamicData) {
53
- const erc20type = dynamicData.typeInfo?.type;
54
- if (erc20type === "gearbox") {
55
- return `https://app.gearbox.fi/pools/${params.targetToken}`;
56
- }
57
- return params.url;
58
- }
59
64
  }
@@ -1,8 +1,8 @@
1
- import { type Erc20LikeCampaignEnum, Erc20SubType } from "@/engine/campaignTVL/implementations/Erc20/Erc20SubType";
1
+ import { type Erc20LikeCampaignEnum, Erc20SubType } from "@/engine/implementations/Erc20/subTypes";
2
2
  import { type CampaignParameters, type MerklChainId } from "@sdk";
3
3
  /**
4
4
  * @notice Compute the subtypes of the campaigns
5
5
  * @warning
6
6
  * @dev This function should return an array of length campaigns.length
7
7
  */
8
- export declare const computeSubTypes: (chainId: MerklChainId, campaigns: CampaignParameters<Erc20LikeCampaignEnum>[]) => Promise<Erc20SubType[]>;
8
+ export declare const detectSubType: (chainId: MerklChainId, campaigns: CampaignParameters<Erc20LikeCampaignEnum>[]) => Promise<Erc20SubType[]>;
@@ -1,8 +1,8 @@
1
- import { Erc20SubType } from "@/engine/campaignTVL/implementations/Erc20/Erc20SubType";
2
- import { getTypeFromFactoryAddress } from "@/engine/erc20SubTypeProcessors/helpers/factoryFinder";
3
- import { getTypeFromAddressChain } from "@/engine/erc20SubTypeProcessors/helpers/hardcoded";
4
- import { getTypeFromOwnerAddress } from "@/engine/erc20SubTypeProcessors/helpers/ownerFinder";
5
- import { processNamingConditionsInOrder } from "@/engine/erc20SubTypeProcessors/subtypesRound1";
1
+ import { getTypeFromFactoryAddress } from "@/engine/deprecated/erc20SubTypeProcessors/helpers/factoryFinder";
2
+ import { getTypeFromAddressChain } from "@/engine/deprecated/erc20SubTypeProcessors/helpers/hardcoded";
3
+ import { getTypeFromOwnerAddress } from "@/engine/deprecated/erc20SubTypeProcessors/helpers/ownerFinder";
4
+ import { processNamingConditionsInOrder } from "@/engine/deprecated/erc20SubTypeProcessors/subtypesRound1";
5
+ import { Erc20SubType } from "@/engine/implementations/Erc20/subTypes";
6
6
  import { decodeReturnValue } from "@/utils/decodeCalls";
7
7
  import { BalancerPoolInterface, BalancerV3StablePoolInterface, ChainInteractionService, ERC20Interface, EnzymeInterface, FactoryInterface, LayerBankERC20Interface, MetamorphoInterface, } from "@sdk";
8
8
  /**
@@ -10,7 +10,7 @@ import { BalancerPoolInterface, BalancerV3StablePoolInterface, ChainInteractionS
10
10
  * @warning
11
11
  * @dev This function should return an array of length campaigns.length
12
12
  */
13
- export const computeSubTypes = async (chainId, campaigns) => {
13
+ export const detectSubType = async (chainId, campaigns) => {
14
14
  // 1. Do a generic multicall per campaign to see which functions are supported
15
15
  const callsPerCampaign = 7;
16
16
  const calls = [];
@@ -0,0 +1,5 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import { Erc20SubType } from ".";
3
+ import type { TVLBuilder } from "../../../tvl/interface";
4
+ export declare const erc20SubTypeTVLBuilderFactory: (erc20Subtype: Erc20SubType) => TVLBuilder<any> | null;
5
+ export declare const erc20SubTypeMetadataBuilderFactory: (erc20Subtype: Erc20SubType) => MetadataBuilder<any> | null;
@@ -0,0 +1,33 @@
1
+ import { Erc20SubType } from ".";
2
+ import { GearboxMetadata } from "./implementations/gearbox/metadata";
3
+ import { GearboxTVLBuilder } from "./implementations/gearbox/tvl";
4
+ /**
5
+ * @dev TYPE SAFETY DISABLED FOR NOW AS WE DON'T HAVE ALL THE CAMPAIGNS IMPLEMENTED
6
+ *
7
+ * @dev Casts are made to enforce type safety
8
+ * @dev A type error must be thrown if a new erc20Subtype is added and the corresponding builder is not implemented
9
+ */
10
+ const tvlMap = {
11
+ [Erc20SubType.gearbox]: new GearboxTVLBuilder(),
12
+ };
13
+ export const erc20SubTypeTVLBuilderFactory = (erc20Subtype) => {
14
+ if (!tvlMap[erc20Subtype]) {
15
+ return null;
16
+ }
17
+ return tvlMap[erc20Subtype];
18
+ };
19
+ /**
20
+ * @dev TYPE SAFETY DISABLED FOR NOW AS WE DON'T HAVE ALL THE CAMPAIGNS IMPLEMENTED
21
+ *
22
+ * @dev Casts are made to enforce type safety
23
+ * @dev A type error must be thrown if a new erc20Subtype is added and the corresponding builder is not implemented
24
+ */
25
+ const metadataMap = {
26
+ [Erc20SubType.gearbox]: new GearboxMetadata(),
27
+ };
28
+ export const erc20SubTypeMetadataBuilderFactory = (erc20Subtype) => {
29
+ if (!metadataMap[erc20Subtype]) {
30
+ return null;
31
+ }
32
+ return metadataMap[erc20Subtype];
33
+ };
@@ -0,0 +1,17 @@
1
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
2
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
3
+ import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
4
+ import type { Erc20LikeCampaignEnum } from "../..";
5
+ export declare class GearboxMetadata implements MetadataBuilder<Erc20LikeCampaignEnum> {
6
+ build(campaign: Omit<CampaignWithParams<Erc20LikeCampaignEnum>, "manualOverrides">): Promise<{
7
+ action: "LEND";
8
+ protocol: ProtocolId;
9
+ name: string;
10
+ tokens: {
11
+ chainId: number;
12
+ address: any;
13
+ }[];
14
+ depositUrl: string;
15
+ explorerAddress: any;
16
+ }>;
17
+ }
@@ -0,0 +1,21 @@
1
+ import { OpportunityAction } from "@db/api";
2
+ import { ChainInteractionService, GearBoxVault__factory, TokenInteractionService } from "@sdk";
3
+ export class GearboxMetadata {
4
+ async build(campaign) {
5
+ const { params, computeChainId } = campaign;
6
+ const { targetToken } = params;
7
+ const underlyingToken = await GearBoxVault__factory.connect(targetToken, ChainInteractionService(computeChainId).provider()).underlyingToken();
8
+ const underlyingTokenSymbol = await TokenInteractionService(computeChainId).symbol(underlyingToken);
9
+ return {
10
+ action: OpportunityAction.LEND,
11
+ protocol: "gearbox",
12
+ name: `Gearbox ${underlyingTokenSymbol} Deposit`,
13
+ tokens: [
14
+ { chainId: computeChainId, address: targetToken },
15
+ { chainId: computeChainId, address: underlyingToken },
16
+ ],
17
+ depositUrl: `https://app.gearbox.fi/pools/${params.targetToken}`,
18
+ explorerAddress: params.targetToken,
19
+ };
20
+ }
21
+ }
@@ -0,0 +1,6 @@
1
+ import type { Erc20LikeCampaignEnum } from "@/engine/implementations/Erc20/subTypes";
2
+ import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
3
+ import { type CampaignParameters, type MerklChainId } from "@sdk";
4
+ export declare class GearboxTVLBuilder implements TVLBuilder<Erc20LikeCampaignEnum> {
5
+ build(computeChainId: MerklChainId, campaigns: CampaignParameters<Erc20LikeCampaignEnum>[]): Promise<TVLData<any>>;
6
+ }
@@ -0,0 +1,43 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { TvlType } from "@db/api";
3
+ import { BN2Number, ChainInteractionService, ERC4626Interface, GearboxVaultInterface, bigIntToNumber, } from "@sdk";
4
+ export class GearboxTVLBuilder {
5
+ async build(computeChainId, campaigns) {
6
+ const tvls = [];
7
+ const calls = [];
8
+ for (const campaign of campaigns) {
9
+ const { targetToken } = campaign.campaignParameters;
10
+ calls.push({
11
+ allowFailure: true,
12
+ callData: GearboxVaultInterface.encodeFunctionData("underlyingToken"),
13
+ target: targetToken,
14
+ }, {
15
+ allowFailure: true,
16
+ callData: ERC4626Interface.encodeFunctionData("totalAssets"),
17
+ target: targetToken,
18
+ });
19
+ }
20
+ const result = await ChainInteractionService(computeChainId).fetchState(calls);
21
+ for (const [index, campaign] of campaigns.entries()) {
22
+ const underlyingTokenAddress = GearboxVaultInterface.decodeFunctionResult("underlyingToken", result[2 * index].returnData)[0];
23
+ const totalAssets = ERC4626Interface.decodeFunctionResult("totalAssets", result[2 * index + 1].returnData)[0];
24
+ const underlyingToken = await TokenService.findUniqueOrThrow({
25
+ chainId: computeChainId,
26
+ address: underlyingTokenAddress,
27
+ });
28
+ const tvl = (bigIntToNumber(totalAssets, underlyingToken.decimals) ?? 0) * (underlyingToken.price ?? 0);
29
+ tvls.push({
30
+ campaign,
31
+ tvl,
32
+ tvlBreakdown: [
33
+ {
34
+ identifier: underlyingToken.id,
35
+ type: TvlType.TOKEN,
36
+ value: BN2Number(totalAssets, underlyingToken.decimals),
37
+ },
38
+ ],
39
+ });
40
+ }
41
+ return tvls;
42
+ }
43
+ }
@@ -23,9 +23,11 @@ export declare enum Erc20SubType {
23
23
  yei_borrowing = "yei_borrowing",
24
24
  ironclad_borrowing = "ironclad_borrowing",
25
25
  zerolend_borrowing = "zerolend_borrowing",
26
+ lnd_borrowing = "lnd_borrowing",
26
27
  yei_lending = "yei_lending",
27
28
  ironclad_lending = "ironclad_lending",
28
29
  zerolend_lending = "zerolend_lending",
30
+ lnd_lending = "lnd_lending",
29
31
  aave_borrowing = "aave_borrowing",
30
32
  aave_lending = "aave_lending",
31
33
  sturdy_aggregator = "sturdy_aggregator",
@@ -22,9 +22,11 @@ export var Erc20SubType;
22
22
  Erc20SubType["yei_borrowing"] = "yei_borrowing";
23
23
  Erc20SubType["ironclad_borrowing"] = "ironclad_borrowing";
24
24
  Erc20SubType["zerolend_borrowing"] = "zerolend_borrowing";
25
+ Erc20SubType["lnd_borrowing"] = "lnd_borrowing";
25
26
  Erc20SubType["yei_lending"] = "yei_lending";
26
27
  Erc20SubType["ironclad_lending"] = "ironclad_lending";
27
28
  Erc20SubType["zerolend_lending"] = "zerolend_lending";
29
+ Erc20SubType["lnd_lending"] = "lnd_lending";
28
30
  Erc20SubType["aave_borrowing"] = "aave_borrowing";
29
31
  Erc20SubType["aave_lending"] = "aave_lending";
30
32
  Erc20SubType["sturdy_aggregator"] = "sturdy_aggregator";
@@ -0,0 +1,6 @@
1
+ import type { Erc20LikeCampaignEnum } from "@/engine/implementations/Erc20/subTypes";
2
+ import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
3
+ import { type CampaignParameters, type MerklChainId } from "@sdk";
4
+ export declare class Erc20TVLBuilder implements TVLBuilder<Erc20LikeCampaignEnum> {
5
+ build(computeChainId: MerklChainId, campaigns: CampaignParameters<Erc20LikeCampaignEnum>[]): Promise<TVLData<any>>;
6
+ }