@merkl/api 0.19.6 → 0.19.8

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 (311) hide show
  1. package/dist/src/backgroundJobs/jobs/campaignsCacheUpdater.js +4 -3
  2. package/dist/src/eden/index.d.ts +85 -48
  3. package/dist/src/engine/dynamicData/factory.d.ts +3 -0
  4. package/dist/src/engine/dynamicData/factory.js +54 -0
  5. package/dist/src/engine/dynamicData/implementations/Ajna.d.ts +7 -0
  6. package/dist/src/engine/dynamicData/implementations/Ajna.js +101 -0
  7. package/dist/src/engine/dynamicData/implementations/Ambiant.d.ts +7 -0
  8. package/dist/src/engine/dynamicData/implementations/Ambiant.js +227 -0
  9. package/dist/src/engine/dynamicData/implementations/Badger.d.ts +7 -0
  10. package/dist/src/engine/dynamicData/implementations/Badger.js +84 -0
  11. package/dist/src/engine/dynamicData/implementations/Clamm.d.ts +7 -0
  12. package/dist/src/engine/dynamicData/implementations/Clamm.js +970 -0
  13. package/dist/src/engine/dynamicData/implementations/Compound.d.ts +7 -0
  14. package/dist/src/engine/dynamicData/implementations/Compound.js +136 -0
  15. package/dist/src/engine/dynamicData/implementations/Dolomite.d.ts +7 -0
  16. package/dist/src/engine/dynamicData/implementations/Dolomite.js +53 -0
  17. package/dist/src/engine/dynamicData/implementations/EigenLayer.d.ts +7 -0
  18. package/dist/src/engine/dynamicData/implementations/EigenLayer.js +64 -0
  19. package/dist/src/engine/dynamicData/implementations/Encompassing.d.ts +7 -0
  20. package/dist/src/engine/dynamicData/implementations/Encompassing.js +26 -0
  21. package/dist/src/engine/dynamicData/implementations/Erc20.d.ts +6 -0
  22. package/dist/src/engine/dynamicData/implementations/Erc20.js +159 -0
  23. package/dist/src/engine/dynamicData/implementations/Erc20Snapshot.d.ts +7 -0
  24. package/dist/src/engine/dynamicData/implementations/Erc20Snapshot.js +32 -0
  25. package/dist/src/engine/dynamicData/implementations/EventBased.d.ts +7 -0
  26. package/dist/src/engine/dynamicData/implementations/EventBased.js +104 -0
  27. package/dist/src/engine/dynamicData/implementations/Hyperdrive.d.ts +7 -0
  28. package/dist/src/engine/dynamicData/implementations/Hyperdrive.js +96 -0
  29. package/dist/src/engine/dynamicData/implementations/Morpho.d.ts +7 -0
  30. package/dist/src/engine/dynamicData/implementations/Morpho.js +109 -0
  31. package/dist/src/engine/dynamicData/implementations/Radiant.d.ts +7 -0
  32. package/dist/src/engine/dynamicData/implementations/Radiant.js +117 -0
  33. package/dist/src/engine/dynamicData/implementations/Silo.d.ts +9 -0
  34. package/dist/src/engine/dynamicData/implementations/Silo.js +109 -0
  35. package/dist/src/engine/dynamicData/implementations/UniswapV4.d.ts +7 -0
  36. package/dist/src/engine/dynamicData/implementations/UniswapV4.js +249 -0
  37. package/dist/src/engine/dynamicData/implementations/Vest.d.ts +9 -0
  38. package/dist/src/engine/dynamicData/implementations/Vest.js +58 -0
  39. package/dist/src/engine/dynamicData/implementations/default.d.ts +5 -0
  40. package/dist/src/engine/dynamicData/implementations/default.js +5 -0
  41. package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getEulerV2Vaults.js +1 -1
  42. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/GenericProcessor.d.ts +1 -1
  43. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/tokenType.d.ts +2 -1
  44. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/tokenType.js +2 -0
  45. package/dist/src/engine/erc20SubTypeProcessors/implementations/BunniV2Processor.d.ts +45 -0
  46. package/dist/src/engine/erc20SubTypeProcessors/implementations/BunniV2Processor.js +87 -0
  47. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/processorMapping.js +2 -0
  48. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound1.js +2 -0
  49. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound2.d.ts +1 -1
  50. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20.js +3 -3
  51. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Euler.d.ts +1 -1
  52. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Euler.js +7 -7
  53. package/dist/src/{factories → engine}/opportunityMetadata/implementations/EventBased.d.ts +1 -1
  54. package/dist/src/{factories → engine}/opportunityMetadata/implementations/EventBased.js +2 -2
  55. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Vest.js +1 -1
  56. package/dist/src/index.d.ts +19 -16
  57. package/dist/src/jobs/update-euler-vaults.js +2 -2
  58. package/dist/src/modules/v4/apr/apr.service.d.ts +1 -1
  59. package/dist/src/modules/v4/apr/apr.service.js +4 -4
  60. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +5 -0
  61. package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
  62. package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
  63. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +4 -0
  64. package/dist/src/modules/v4/campaign/campaign.repository.js +2 -1
  65. package/dist/src/modules/v4/campaign/campaign.service.d.ts +0 -8
  66. package/dist/src/modules/v4/campaign/campaign.service.js +0 -13
  67. package/dist/src/modules/v4/dynamicData/dynamicData.service.js +3 -4
  68. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +8 -0
  69. package/dist/src/modules/v4/opportunity/opportunity.converter.js +2 -2
  70. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -0
  71. package/dist/src/modules/v4/opportunity/opportunity.model.js +2 -0
  72. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +1 -1
  73. package/dist/src/modules/v4/opportunity/opportunity.repository.js +14 -10
  74. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +2 -2
  75. package/dist/src/modules/v4/opportunity/opportunity.service.js +5 -5
  76. package/dist/src/modules/v4/router.d.ts +14 -0
  77. package/dist/src/modules/v4/token/token.controller.d.ts +1 -0
  78. package/dist/src/modules/v4/token/token.model.d.ts +1 -0
  79. package/dist/src/modules/v4/token/token.model.js +1 -0
  80. package/dist/src/modules/v4/token/token.service.d.ts +3 -1
  81. package/dist/src/modules/v4/token/token.service.js +18 -0
  82. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +2 -2
  83. package/dist/src/modules/v4/uniswapV4/uniswapV4.service.d.ts +2 -2
  84. package/dist/src/modules/v4/uniswapV4/uniswapV4.service.js +1 -1
  85. package/dist/src/routes/v3/campaigns.d.ts +1 -1
  86. package/dist/src/routes/v3/compoundV2.d.ts +2 -10
  87. package/dist/src/routes/v3/compoundV2.js +1 -1
  88. package/dist/src/routes/v3/dolomite.js +1 -1
  89. package/dist/src/routes/v3/euler.js +1 -1
  90. package/dist/src/routes/v3/router.d.ts +5 -16
  91. package/dist/src/routes/v3/uniswapv4.d.ts +2 -5
  92. package/dist/src/routes/v3/uniswapv4.js +1 -1
  93. package/dist/src/utils/decodeCalls.d.ts +1 -1
  94. package/dist/src/utils/decodeCalls.js +8 -2
  95. package/dist/src/utils/encodeCalls.d.ts +1 -1
  96. package/dist/src/utils/encodeCalls.js +20 -2
  97. package/dist/src/utils/generateCardName.d.ts +1 -1
  98. package/dist/src/utils/generateCardName.js +3 -1
  99. package/dist/src/utils/generateIcons.d.ts +1 -1
  100. package/dist/src/utils/generateIcons.js +1 -1
  101. package/dist/tsconfig.package.tsbuildinfo +1 -1
  102. package/package.json +2 -2
  103. package/dist/src/factories/dynamicData/factory.d.ts +0 -0
  104. package/dist/src/factories/dynamicData/factory.js +0 -10
  105. package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.d.ts +0 -5
  106. package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.js +0 -111
  107. package/dist/src/libs/campaigns/campaignTypes/AmbientDynamicData.d.ts +0 -3
  108. package/dist/src/libs/campaigns/campaignTypes/AmbientDynamicData.js +0 -243
  109. package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.d.ts +0 -5
  110. package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.js +0 -93
  111. package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.d.ts +0 -3
  112. package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.js +0 -986
  113. package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.d.ts +0 -3
  114. package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.js +0 -139
  115. package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.d.ts +0 -5
  116. package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.js +0 -60
  117. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.d.ts +0 -4
  118. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +0 -164
  119. package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.d.ts +0 -5
  120. package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.js +0 -38
  121. package/dist/src/libs/campaigns/campaignTypes/EigenLayerDynamicData.d.ts +0 -3
  122. package/dist/src/libs/campaigns/campaignTypes/EigenLayerDynamicData.js +0 -67
  123. package/dist/src/libs/campaigns/campaignTypes/EncompassingDynamicData.d.ts +0 -5
  124. package/dist/src/libs/campaigns/campaignTypes/EncompassingDynamicData.js +0 -34
  125. package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.d.ts +0 -3
  126. package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.js +0 -114
  127. package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.d.ts +0 -5
  128. package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.js +0 -99
  129. package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.d.ts +0 -5
  130. package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.js +0 -19
  131. package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.d.ts +0 -5
  132. package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.js +0 -112
  133. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.d.ts +0 -3
  134. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +0 -122
  135. package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.d.ts +0 -7
  136. package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.js +0 -115
  137. package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.d.ts +0 -3
  138. package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.js +0 -265
  139. package/dist/src/libs/campaigns/campaignTypes/VestDynamicData.d.ts +0 -5
  140. package/dist/src/libs/campaigns/campaignTypes/VestDynamicData.js +0 -61
  141. package/dist/src/libs/campaigns/campaignsDynamicData.d.ts +0 -3
  142. package/dist/src/libs/campaigns/campaignsDynamicData.js +0 -131
  143. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchA51Strategies.d.ts +0 -0
  144. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchA51Strategies.js +0 -0
  145. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchAmbientInfo.d.ts +0 -0
  146. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchAmbientInfo.js +0 -0
  147. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchClamInfo.d.ts +0 -0
  148. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchClamInfo.js +0 -0
  149. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchLogs.d.ts +0 -0
  150. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchLogs.js +0 -0
  151. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getCompV2ForksVaults.d.ts +0 -0
  152. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getCompV2ForksVaults.js +0 -0
  153. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getContractCreationBlock.d.ts +0 -0
  154. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getContractCreationBlock.js +0 -0
  155. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getDolomiteMarkets.d.ts +0 -0
  156. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getDolomiteMarkets.js +0 -0
  157. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getEulerV2Vaults.d.ts +0 -0
  158. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getUniswapV4Pools.d.ts +0 -0
  159. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getUniswapV4Pools.js +0 -0
  160. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/GenericProcessor.js +0 -0
  161. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/eulerVaultNames.d.ts +0 -0
  162. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/eulerVaultNames.js +0 -0
  163. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/factoryFinder.d.ts +0 -0
  164. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/factoryFinder.js +0 -0
  165. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.d.ts +0 -0
  166. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.js +0 -0
  167. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/hardcoded.d.ts +0 -0
  168. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/hardcoded.js +0 -0
  169. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/metamorphoTvl.d.ts +0 -0
  170. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/metamorphoTvl.js +0 -0
  171. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/ownerFinder.d.ts +0 -0
  172. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/ownerFinder.js +0 -0
  173. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/spliceTVL.d.ts +0 -0
  174. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/spliceTVL.js +0 -0
  175. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AaveProcessor.d.ts +0 -0
  176. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AaveProcessor.js +0 -0
  177. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AnglesLiquid.d.ts +0 -0
  178. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AnglesLiquid.js +0 -0
  179. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AssetProcessor.d.ts +0 -0
  180. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AssetProcessor.js +0 -0
  181. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AuraProcessor.d.ts +0 -0
  182. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AuraProcessor.js +0 -0
  183. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.d.ts +0 -0
  184. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.js +0 -0
  185. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.d.ts +0 -0
  186. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.js +0 -0
  187. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.d.ts +0 -0
  188. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.js +0 -0
  189. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BeefyProcessor.d.ts +0 -0
  190. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BeefyProcessor.js +0 -0
  191. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/CompoundProcessor.d.ts +0 -0
  192. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/CompoundProcessor.js +0 -0
  193. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ERC4626Processor.d.ts +0 -0
  194. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ERC4626Processor.js +0 -0
  195. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EnzymeProcessor.d.ts +0 -0
  196. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EnzymeProcessor.js +0 -0
  197. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.d.ts +0 -0
  198. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.js +0 -0
  199. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.d.ts +0 -0
  200. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.js +0 -0
  201. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerLendProcessor.d.ts +0 -0
  202. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerLendProcessor.js +0 -0
  203. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FluidProcessor.d.ts +0 -0
  204. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FluidProcessor.js +0 -0
  205. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FraxProcessor.d.ts +0 -0
  206. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FraxProcessor.js +0 -0
  207. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GammaProcessor.d.ts +0 -0
  208. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GammaProcessor.js +0 -0
  209. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GearboxProcessor.d.ts +0 -0
  210. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GearboxProcessor.js +0 -0
  211. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.d.ts +0 -0
  212. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.js +0 -0
  213. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HoldStationProcessor.d.ts +0 -0
  214. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HoldStationProcessor.js +0 -0
  215. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HourglassProcessor.d.ts +0 -0
  216. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HourglassProcessor.js +0 -0
  217. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.d.ts +0 -0
  218. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.js +0 -0
  219. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.d.ts +0 -0
  220. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.js +0 -0
  221. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.d.ts +0 -0
  222. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.js +0 -0
  223. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleProcessor.d.ts +0 -0
  224. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleProcessor.js +0 -0
  225. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleYTProcessor.d.ts +0 -0
  226. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleYTProcessor.js +0 -0
  227. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RadiantProcessor.d.ts +0 -0
  228. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RadiantProcessor.js +0 -0
  229. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RfxProcessor.d.ts +0 -0
  230. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RfxProcessor.js +0 -0
  231. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/Satlayer.d.ts +0 -0
  232. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/Satlayer.js +0 -0
  233. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraProcessor.d.ts +0 -0
  234. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraProcessor.js +0 -0
  235. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.d.ts +0 -0
  236. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.js +0 -0
  237. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpliceProcessor.d.ts +0 -0
  238. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpliceProcessor.js +0 -0
  239. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.d.ts +0 -0
  240. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.js +0 -0
  241. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.d.ts +0 -0
  242. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.js +0 -0
  243. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TemplateProcessor.d.ts +0 -0
  244. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TemplateProcessor.js +0 -0
  245. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TorosProcessor.d.ts +0 -0
  246. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TorosProcessor.js +0 -0
  247. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/UniswapProcessor.d.ts +0 -0
  248. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/UniswapProcessor.js +0 -0
  249. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/VicunaProcessor.d.ts +0 -0
  250. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/VicunaProcessor.js +0 -0
  251. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/WoofiProcessor.d.ts +0 -0
  252. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/WoofiProcessor.js +0 -0
  253. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.d.ts +0 -0
  254. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.js +0 -0
  255. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.d.ts +0 -0
  256. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.js +0 -0
  257. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveProcessor.d.ts +0 -0
  258. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveProcessor.js +0 -0
  259. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/processorMapping.d.ts +0 -0
  260. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.d.ts +0 -0
  261. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.js +0 -0
  262. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/xU308Processor.d.ts +0 -0
  263. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/xU308Processor.js +0 -0
  264. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesPrices.d.ts +0 -0
  265. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesPrices.js +0 -0
  266. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound1.d.ts +0 -0
  267. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound2.js +0 -0
  268. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound3.d.ts +0 -0
  269. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound3.js +0 -0
  270. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound4.d.ts +0 -0
  271. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound4.js +0 -0
  272. /package/dist/src/{factories → engine}/opportunityMetadata/factory.d.ts +0 -0
  273. /package/dist/src/{factories → engine}/opportunityMetadata/factory.js +0 -0
  274. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ajna.d.ts +0 -0
  275. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ajna.js +0 -0
  276. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ambiant.d.ts +0 -0
  277. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ambiant.js +0 -0
  278. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Badger.d.ts +0 -0
  279. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Badger.js +0 -0
  280. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Clamm.d.ts +0 -0
  281. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Clamm.js +0 -0
  282. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Compound.d.ts +0 -0
  283. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Compound.js +0 -0
  284. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Default.d.ts +0 -0
  285. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Default.js +0 -0
  286. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Dolomite.d.ts +0 -0
  287. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Dolomite.js +0 -0
  288. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EigenLayer.d.ts +0 -0
  289. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EigenLayer.js +0 -0
  290. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Encompassing.d.ts +0 -0
  291. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Encompassing.js +0 -0
  292. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20.d.ts +0 -0
  293. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20Snapshot.d.ts +0 -0
  294. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20Snapshot.js +0 -0
  295. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Hyperdrive.d.ts +0 -0
  296. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Hyperdrive.js +0 -0
  297. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Invalid.d.ts +0 -0
  298. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Invalid.js +0 -0
  299. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ion.d.ts +0 -0
  300. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ion.js +0 -0
  301. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/JsonAirdrop.d.ts +0 -0
  302. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/JsonAirdrop.js +0 -0
  303. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Morpho.d.ts +0 -0
  304. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Morpho.js +0 -0
  305. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Radiant.d.ts +0 -0
  306. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Radiant.js +0 -0
  307. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Silo.d.ts +0 -0
  308. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Silo.js +0 -0
  309. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/UniswapV4.d.ts +0 -0
  310. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/UniswapV4.js +0 -0
  311. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Vest.d.ts +0 -0
@@ -0,0 +1,96 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { Pricer } from "@/utils/pricer";
3
+ import { BN2Number, ChainInteractionService, ETH_ADDRESS, HyperDriveSubCampaignType, HyperdriveTargetInterface, YEAR, } from "@sdk";
4
+ export class HyperdriveDynamicData {
5
+ async build(chainId, campaigns) {
6
+ const pricer = await Pricer.load();
7
+ const calls = [];
8
+ for (const campaign of campaigns) {
9
+ calls.push({
10
+ allowFailure: false,
11
+ callData: HyperdriveTargetInterface.encodeFunctionData("getPoolInfo"),
12
+ target: campaign.campaignParameters.targetToken,
13
+ }, {
14
+ allowFailure: false,
15
+ callData: HyperdriveTargetInterface.encodeFunctionData("getPoolConfig"),
16
+ target: campaign.campaignParameters.targetToken,
17
+ });
18
+ }
19
+ const result = await ChainInteractionService(chainId).fetchState(calls);
20
+ let i = 0;
21
+ const dynamicData = [];
22
+ for (const campaign of campaigns) {
23
+ try {
24
+ const poolInfo = HyperdriveTargetInterface.decodeFunctionResult("getPoolInfo", result[i].returnData)[0];
25
+ const poolConfig = HyperdriveTargetInterface.decodeFunctionResult("getPoolConfig", result[i + 1].returnData)[0];
26
+ // const priceRewardToken =
27
+ // (await pricer.get({
28
+ // address: campaign.rewardToken,
29
+ // chainId,
30
+ // symbol: campaign.campaignParameters.symbolRewardToken,
31
+ // })) ?? 0;
32
+ const priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
33
+ const lpSupply = BN2Number(poolInfo.lpTotalSupply, 18);
34
+ const longSupply = BN2Number(poolInfo.longsOutstanding, 18);
35
+ const shortSupply = BN2Number(poolInfo.shortsOutstanding, 18);
36
+ const marketSupply = lpSupply * BN2Number(poolInfo.lpSharePrice, 18);
37
+ const priceBaseToken = (poolConfig.baseToken === ETH_ADDRESS
38
+ ? await pricer.get({
39
+ chainId,
40
+ symbol: "ETH",
41
+ })
42
+ : await pricer.get({
43
+ address: campaign.campaignParameters.baseToken,
44
+ chainId,
45
+ symbol: campaign.campaignParameters.baseTokenSymbol,
46
+ })) ?? 0;
47
+ const tvl = campaign.campaignSubType === HyperDriveSubCampaignType.LP
48
+ ? priceBaseToken * marketSupply
49
+ : campaign.campaignSubType === HyperDriveSubCampaignType.LONG
50
+ ? priceBaseToken * longSupply
51
+ : priceBaseToken * shortSupply;
52
+ dynamicData.push({
53
+ ...campaign,
54
+ totalSupplyTargetToken: marketSupply,
55
+ tvl: tvl,
56
+ apr: priceRewardToken !== 0
57
+ ? (priceRewardToken *
58
+ BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
59
+ YEAR *
60
+ 100) /
61
+ campaign.campaignParameters.duration /
62
+ tvl
63
+ : 0,
64
+ priceRewardToken: priceRewardToken,
65
+ });
66
+ }
67
+ catch (e) {
68
+ dynamicData.push({
69
+ ...campaign,
70
+ totalSupplyTargetToken: 0,
71
+ tvl: 0,
72
+ apr: 0,
73
+ priceRewardToken: 0,
74
+ });
75
+ console.error(e);
76
+ }
77
+ i += 2;
78
+ }
79
+ return dynamicData;
80
+ }
81
+ }
82
+ // enum AssetIdPrefix {
83
+ // LP = 0,
84
+ // Long = 1,
85
+ // Short = 2,
86
+ // WithdrawalShare = 3,
87
+ // }
88
+ // function encodeAssetId(prefix: AssetIdPrefix, timestamp: bigint): bigint {
89
+ // // Check if the timestamp is within the valid range
90
+ // const maxTimestamp = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
91
+ // if (timestamp > maxTimestamp) {
92
+ // throw new Error("InvalidTimestamp");
93
+ // }
94
+ // // Encode the asset ID
95
+ // return (BigInt(prefix) << BigInt(248)) | timestamp;
96
+ // }
@@ -0,0 +1,7 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import type { DynamicDataBuilder } from "../interface";
3
+ type campaignType = Campaign.MORPHO;
4
+ export declare class MorphoDynamicData implements DynamicDataBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<MorphoCampaignDynamicData[]>;
6
+ }
7
+ export {};
@@ -0,0 +1,109 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { BN2Number, ChainInteractionService, MetamorphoInterface, MorphoSubCampaignType, YEAR, } from "@sdk";
3
+ import axios from "axios";
4
+ import { Pricer } from "../../../utils/pricer";
5
+ export class MorphoDynamicData {
6
+ async build(chainId, campaigns) {
7
+ const pricer = await Pricer.load();
8
+ const calls = [];
9
+ const endpoint = "https://blue-api.morpho.org/graphql";
10
+ const headers = {
11
+ "content-type": "application/json",
12
+ };
13
+ for (const campaign of campaigns) {
14
+ if (campaign.campaignSubType === MorphoSubCampaignType.META) {
15
+ calls.push({
16
+ allowFailure: true,
17
+ callData: MetamorphoInterface.encodeFunctionData("totalAssets"),
18
+ target: campaign.campaignParameters.targetToken,
19
+ }, {
20
+ allowFailure: true,
21
+ callData: MetamorphoInterface.encodeFunctionData("totalSupply"),
22
+ target: campaign.campaignParameters.targetToken,
23
+ });
24
+ }
25
+ }
26
+ const result = await ChainInteractionService(chainId).fetchState(calls);
27
+ const dynamicData = [];
28
+ let index = 0;
29
+ for (const campaign of campaigns) {
30
+ // const priceRewardToken =
31
+ // (await pricer.get({
32
+ // address: campaign.rewardToken,
33
+ // chainId,
34
+ // symbol: campaign.campaignParameters.symbolRewardToken,
35
+ // })) ?? 0;
36
+ const priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
37
+ let tvl = 0;
38
+ let totalSupplyTargetToken = 0;
39
+ if (campaign.campaignSubType === MorphoSubCampaignType.META) {
40
+ const totalAssets = BN2Number(MetamorphoInterface.decodeFunctionResult("totalAssets", result[index++].returnData)[0], campaign.campaignParameters.decimalsUnderlyingToken);
41
+ const totalSupply = BN2Number(MetamorphoInterface.decodeFunctionResult("totalSupply", result[index++].returnData)[0], campaign.campaignParameters.decimalsTargetToken);
42
+ const priceAsset = (await pricer.get({
43
+ symbol: campaign.campaignParameters.symbolUnderlyingToken,
44
+ })) ?? 0;
45
+ tvl = priceAsset * totalAssets;
46
+ totalSupplyTargetToken = totalSupply;
47
+ }
48
+ if (campaign.campaignSubType === MorphoSubCampaignType.SUPPLY_BLUE ||
49
+ campaign.campaignSubType === MorphoSubCampaignType.BORROWING_BLUE ||
50
+ campaign.campaignSubType === MorphoSubCampaignType.COLLATERAL_BLUE) {
51
+ const graphqlQueryMarket = {
52
+ query: `query MarketByUniqueKey($uniqueKey: String!, $chainId: Int) {
53
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
54
+ state {
55
+ borrowAssetsUsd
56
+ borrowAssets
57
+ collateralAssets
58
+ collateralAssetsUsd
59
+ supplyAssets
60
+ supplyAssetsUsd
61
+ }
62
+ }
63
+ }
64
+ `,
65
+ variables: {
66
+ uniqueKey: campaign.campaignParameters.marketId,
67
+ chainId: campaign.computeChainId,
68
+ },
69
+ };
70
+ try {
71
+ const response = await axios({
72
+ url: endpoint,
73
+ method: "post",
74
+ headers: headers,
75
+ data: graphqlQueryMarket,
76
+ });
77
+ if (campaign.campaignSubType === MorphoSubCampaignType.SUPPLY_BLUE) {
78
+ tvl = response.data.data.marketByUniqueKey.state.supplyAssetsUsd;
79
+ totalSupplyTargetToken = response.data.data.marketByUniqueKey.state.supplyAssets;
80
+ }
81
+ if (campaign.campaignSubType === MorphoSubCampaignType.BORROWING_BLUE) {
82
+ tvl = response.data.data.marketByUniqueKey.state.borrowAssetsUsd;
83
+ totalSupplyTargetToken = response.data.data.marketByUniqueKey.state.borrowAssets;
84
+ }
85
+ if (campaign.campaignSubType === MorphoSubCampaignType.COLLATERAL_BLUE) {
86
+ tvl = response.data.data.marketByUniqueKey.state.collateralAssetsUsd;
87
+ totalSupplyTargetToken = response.data.data.marketByUniqueKey.state.collateralAssets;
88
+ }
89
+ }
90
+ catch (e) {
91
+ console.log(e);
92
+ }
93
+ }
94
+ dynamicData.push({
95
+ ...campaign,
96
+ apr: (priceRewardToken *
97
+ BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
98
+ YEAR *
99
+ 100) /
100
+ campaign.campaignParameters.duration /
101
+ tvl,
102
+ totalSupplyTargetToken,
103
+ tvl: tvl,
104
+ priceRewardToken: priceRewardToken,
105
+ });
106
+ }
107
+ return dynamicData;
108
+ }
109
+ }
@@ -0,0 +1,7 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import type { DynamicDataBuilder } from "../interface";
3
+ type campaignType = Campaign.RADIANT;
4
+ export declare class RadiantDynamicData implements DynamicDataBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<RadiantCampaignDynamicData[]>;
6
+ }
7
+ export {};
@@ -0,0 +1,117 @@
1
+ import { ComputedValueService } from "@/modules/v4/computedValue";
2
+ import { TokenService } from "@/modules/v4/token/token.service";
3
+ import { engineDbClient } from "@db";
4
+ import { BN2Number, ChainInteractionService, ERC20Interface, NULL_ADDRESS, RadiantInterface, RadiantPoolInterface, YEAR, } from "@sdk";
5
+ import { Contract } from "ethers";
6
+ import { log } from "../../../utils/logger";
7
+ import { Pricer } from "../../../utils/pricer";
8
+ import { providers } from "../../../utils/providers";
9
+ export class RadiantDynamicData {
10
+ async build(chainId, campaigns) {
11
+ const pricer = await Pricer.load();
12
+ const calls = [];
13
+ for (const campaign of campaigns) {
14
+ calls.push({
15
+ allowFailure: true,
16
+ callData: ERC20Interface.encodeFunctionData("totalSupply"),
17
+ target: campaign.campaignParameters.targetToken,
18
+ });
19
+ calls.push({
20
+ allowFailure: true,
21
+ callData: RadiantPoolInterface.encodeFunctionData("getRizRegistry"),
22
+ target: campaign.campaignParameters.poolAddressProvider ?? NULL_ADDRESS,
23
+ });
24
+ calls.push({
25
+ allowFailure: true,
26
+ callData: RadiantInterface.encodeFunctionData("getAssetPrice"),
27
+ target: campaign.campaignParameters.targetToken,
28
+ });
29
+ }
30
+ const result = await ChainInteractionService(chainId).fetchState(calls);
31
+ let i = 0;
32
+ const dynamicData = [];
33
+ for (const campaign of campaigns) {
34
+ let totalSupplyTargetToken;
35
+ try {
36
+ totalSupplyTargetToken = BN2Number(ERC20Interface.decodeFunctionResult("totalSupply", result[i++].returnData)[0], campaign.campaignParameters.decimalsTargetToken);
37
+ }
38
+ catch {
39
+ log.warn(`Error getting totalSupply for campaign ${campaign.campaignId} and token ${campaign.campaignParameters.targetToken}`);
40
+ totalSupplyTargetToken = 0.0000001;
41
+ }
42
+ const backupCampaignIds = (await engineDbClient.campaigns.findMany({
43
+ select: {
44
+ campaignId: true,
45
+ campaignParameters: true,
46
+ endTimestamp: true,
47
+ },
48
+ where: {
49
+ chainId: chainId,
50
+ mainParameter: campaign.mainParameter,
51
+ },
52
+ }))
53
+ .filter(c => c.campaignParameters?.symbolRewardToken === "mtwRDNT")
54
+ .sort((a, b) => b.endTimestamp - a.endTimestamp)
55
+ .map(c => c?.campaignId);
56
+ let lastEligibilityRatio = 1;
57
+ if (!!campaign.campaignParameters.hooks?.length) {
58
+ for (const campaignId of [campaign.campaignId, ...backupCampaignIds]) {
59
+ lastEligibilityRatio =
60
+ (await ComputedValueService.findCampaignValue({
61
+ campaignId: `${campaignId}-${chainId}`,
62
+ field: "averageBoost",
63
+ }))?.averageBoost ?? 1;
64
+ if (lastEligibilityRatio !== 1)
65
+ break;
66
+ }
67
+ }
68
+ // const priceRewardToken =
69
+ // (await pricer.get({
70
+ // address: campaign.rewardToken,
71
+ // chainId,
72
+ // symbol: campaign.campaignParameters.symbolRewardToken,
73
+ // })) ?? 0;
74
+ const priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
75
+ let priceDecimals = 8;
76
+ let rizRegistry = "";
77
+ try {
78
+ rizRegistry = RadiantPoolInterface.decodeFunctionResult("getRizRegistry", result[i].returnData)[0];
79
+ const isRiz = await new Contract(rizRegistry, RadiantPoolInterface, providers[chainId]).isLendingPoolValid(campaign.campaignParameters.pool);
80
+ if (isRiz)
81
+ priceDecimals = 18;
82
+ }
83
+ catch {
84
+ // If it is doesn't work it means it's not a Radiant Innovation Zone Market
85
+ }
86
+ i++;
87
+ let priceTargetToken = 0;
88
+ try {
89
+ priceTargetToken = BN2Number(RadiantInterface.decodeFunctionResult("getAssetPrice", result[i].returnData)[0], priceDecimals);
90
+ }
91
+ catch (e) {
92
+ log.local("Error getting priceTargetToken");
93
+ priceTargetToken =
94
+ (await pricer.get({
95
+ symbol: campaign.campaignParameters.symbolTargetToken,
96
+ address: campaign.campaignParameters.targetToken,
97
+ })) ?? 0;
98
+ }
99
+ i++;
100
+ dynamicData.push({
101
+ ...campaign,
102
+ apr: (lastEligibilityRatio *
103
+ priceRewardToken *
104
+ BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
105
+ YEAR *
106
+ 100) /
107
+ campaign.campaignParameters.duration /
108
+ (totalSupplyTargetToken * priceTargetToken),
109
+ totalSupplyTargetToken,
110
+ tvl: totalSupplyTargetToken * priceTargetToken,
111
+ lastEligibilityRatio,
112
+ priceRewardToken: priceRewardToken,
113
+ });
114
+ }
115
+ return dynamicData;
116
+ }
117
+ }
@@ -0,0 +1,9 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import { utils } from "ethers";
3
+ import type { DynamicDataBuilder } from "../interface";
4
+ export declare const SILO_INTERFACE: utils.Interface;
5
+ type campaignType = Campaign.SILO;
6
+ export declare class SiloDynamicData implements DynamicDataBuilder<campaignType> {
7
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<any[]>;
8
+ }
9
+ export {};
@@ -0,0 +1,109 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { BN2Number, ChainInteractionService, ERC20Interface, Forwarder, YEAR, } from "@sdk";
3
+ import { utils } from "ethers";
4
+ import { log } from "../../../utils/logger";
5
+ import { Pricer } from "../../../utils/pricer";
6
+ const SILO_ABI = [
7
+ "function getAssets() view returns (address[])",
8
+ "function assetStorage(address) external view returns (address,address,address,uint256,uint256,uint256)",
9
+ "function siloAsset() view returns (address)",
10
+ ];
11
+ export const SILO_INTERFACE = new utils.Interface(SILO_ABI);
12
+ export class SiloDynamicData {
13
+ async build(chainId, campaigns) {
14
+ const pricer = await Pricer.load();
15
+ const siloAssetsCalls = [];
16
+ for (const campaign of campaigns) {
17
+ if (campaign.campaignParameters.whitelist.length === 1) {
18
+ siloAssetsCalls.push({
19
+ allowFailure: true,
20
+ callData: SILO_INTERFACE.encodeFunctionData("siloAsset"),
21
+ target: campaign.campaignParameters.whitelist[0],
22
+ });
23
+ }
24
+ }
25
+ const siloAssetsCallsResults = await ChainInteractionService(chainId).fetchState(siloAssetsCalls);
26
+ const calls = [];
27
+ let i = 0;
28
+ for (const campaign of campaigns) {
29
+ for (const forwarder of campaign.campaignParameters.forwarders) {
30
+ if (forwarder.forwarderType === Forwarder.ERC20) {
31
+ calls.push({
32
+ allowFailure: true,
33
+ callData: SILO_INTERFACE.encodeFunctionData("assetStorage", [campaign.campaignParameters.targetToken]),
34
+ target: forwarder.sender,
35
+ });
36
+ if (campaign.campaignParameters.whitelist.length === 1) {
37
+ const siloAsset = SILO_INTERFACE.decodeFunctionResult("siloAsset", siloAssetsCallsResults[i].returnData)[0];
38
+ calls.push({
39
+ allowFailure: true,
40
+ callData: ERC20Interface.encodeFunctionData("symbol"),
41
+ target: siloAsset,
42
+ });
43
+ }
44
+ }
45
+ }
46
+ if (campaign.campaignParameters.whitelist.length === 1) {
47
+ i++;
48
+ }
49
+ }
50
+ const result = await ChainInteractionService(chainId).fetchState(calls);
51
+ i = 0;
52
+ let j = 0;
53
+ const dynamicData = [];
54
+ for (const campaign of campaigns) {
55
+ // const priceRewardToken =
56
+ // (await pricer.get({
57
+ // address: campaign.rewardToken,
58
+ // chainId,
59
+ // symbol: campaign.campaignParameters.symbolRewardToken,
60
+ // })) ?? 0;
61
+ const priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
62
+ const priceTargetToken = (await pricer.get({
63
+ address: campaign.campaignParameters.targetToken,
64
+ chainId,
65
+ symbol: campaign.campaignParameters.symbolTargetToken,
66
+ })) ?? 0;
67
+ let totalSupplyTargetToken = 0;
68
+ const forwarders = (campaign.campaignParameters.forwarders ??
69
+ []);
70
+ for (const _forwarder of forwarders) {
71
+ if (_forwarder.forwarderType === Forwarder.ERC20) {
72
+ try {
73
+ totalSupplyTargetToken += BN2Number(SILO_INTERFACE.decodeFunctionResult("assetStorage", result[i].returnData)[3 + campaign.campaignSubType], campaign.campaignParameters.decimalsTargetToken);
74
+ i++;
75
+ }
76
+ catch (e) {
77
+ log.local(`Issue with ${_forwarder.sender} on ${campaign.campaignParameters.targetToken}`);
78
+ i++;
79
+ }
80
+ if (campaign.campaignParameters.whitelist.length === 1) {
81
+ const siloAsset = SILO_INTERFACE.decodeFunctionResult("siloAsset", siloAssetsCallsResults[j].returnData)[0];
82
+ const siloAssetSymbol = ERC20Interface.decodeFunctionResult("symbol", result[i++].returnData)[0];
83
+ // @BaptistG not sure to get this
84
+ forwarders[0].siloAsset = siloAsset;
85
+ forwarders[0].siloAssetSymbol = siloAssetSymbol;
86
+ }
87
+ }
88
+ }
89
+ if (campaign.campaignParameters.whitelist.length === 1) {
90
+ j++;
91
+ }
92
+ // Remove all silo forwarders
93
+ campaign.campaignParameters.forwarders = forwarders.filter(forwarder => forwarder.forwarderType !== Forwarder.SILO);
94
+ dynamicData.push({
95
+ ...campaign,
96
+ apr: (priceRewardToken *
97
+ BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
98
+ YEAR *
99
+ 100) /
100
+ campaign.campaignParameters.duration /
101
+ (totalSupplyTargetToken * priceTargetToken),
102
+ totalSupplyTargetToken,
103
+ tvl: totalSupplyTargetToken * priceTargetToken,
104
+ priceRewardToken: priceRewardToken,
105
+ });
106
+ }
107
+ return dynamicData;
108
+ }
109
+ }
@@ -0,0 +1,7 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import type { DynamicDataBuilder } from "../interface";
3
+ type campaignType = Campaign.UNISWAP_V4;
4
+ export declare class UniswapV4DynamicData implements DynamicDataBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<UniswapV4CampaignDynamicData[]>;
6
+ }
7
+ export {};