@merkl/api 0.10.199 → 0.10.201

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dist/src/eden/index.d.ts +2 -6398
  2. package/dist/src/errors/HttpError.d.ts +5 -0
  3. package/dist/src/errors/HttpError.js +6 -0
  4. package/dist/src/errors/NotFound.error.d.ts +4 -0
  5. package/dist/src/errors/NotFound.error.js +5 -0
  6. package/dist/src/index.d.ts +1 -2464
  7. package/dist/src/index.js +56 -7
  8. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +15 -22
  9. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/factoryFinder.js +1 -0
  10. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +3 -1
  11. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +8 -0
  12. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GammaProcessor.d.ts +43 -0
  13. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GammaProcessor.js +63 -0
  14. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GenericProcessor.d.ts +3 -3
  15. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GenericProcessor.js +3 -1
  16. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/NoLinkVaultProcessor.d.ts +36 -0
  17. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/NoLinkVaultProcessor.js +51 -0
  18. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/StakingProcessor.d.ts +0 -1
  19. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/StakingProcessor.js +15 -7
  20. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +4 -0
  21. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPrices.d.ts +1 -1
  22. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPrices.js +13 -572
  23. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.d.ts +2 -21
  24. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.js +197 -1174
  25. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2.d.ts +1 -5
  26. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2.js +11 -634
  27. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.d.ts +1 -4
  28. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.js +10 -380
  29. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4.d.ts +3 -3
  30. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4.js +11 -312
  31. package/dist/src/libs/campaigns/campaignTypes/EulerDynamicData.js +8 -8
  32. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +3 -4
  33. package/dist/src/libs/campaigns/campaignsDynamicData.js +0 -5
  34. package/dist/src/modules/v4/accounting/accounting.controller.js +1 -1
  35. package/dist/src/modules/v4/apr/apr.model.d.ts +26 -0
  36. package/dist/src/modules/v4/apr/apr.model.js +15 -1
  37. package/dist/src/modules/v4/blacklist/blacklist.controller.js +1 -1
  38. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +6 -4
  39. package/dist/src/modules/v4/campaign/campaign.controller.js +14 -4
  40. package/dist/src/modules/v4/campaign/campaign.model.d.ts +51 -5
  41. package/dist/src/modules/v4/campaign/campaign.model.js +48 -13
  42. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -2
  43. package/dist/src/modules/v4/campaign/campaign.repository.js +10 -2
  44. package/dist/src/modules/v4/campaign/campaign.service.d.ts +2 -2
  45. package/dist/src/modules/v4/chain/chain.controller.d.ts +2 -2
  46. package/dist/src/modules/v4/chain/chain.controller.js +7 -2
  47. package/dist/src/modules/v4/chain/chain.model.d.ts +6 -1
  48. package/dist/src/modules/v4/chain/chain.model.js +8 -1
  49. package/dist/src/modules/v4/chain/chain.repository.js +1 -1
  50. package/dist/src/modules/v4/claims/claims.controller.js +1 -1
  51. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +4 -1
  52. package/dist/src/modules/v4/enso/enso.model.d.ts +1 -1
  53. package/dist/src/modules/v4/enso/enso.model.js +2 -1
  54. package/dist/src/modules/v4/enso/enso.service.d.ts +0 -1
  55. package/dist/src/modules/v4/enso/enso.service.js +4 -4
  56. package/dist/src/modules/v4/interaction/interaction.controller.d.ts +26 -17
  57. package/dist/src/modules/v4/interaction/interaction.controller.js +19 -28
  58. package/dist/src/modules/v4/interaction/interaction.model.d.ts +17 -5
  59. package/dist/src/modules/v4/interaction/interaction.model.js +3 -3
  60. package/dist/src/modules/v4/interaction/interaction.service.d.ts +18 -3
  61. package/dist/src/modules/v4/interaction/interaction.service.js +89 -11
  62. package/dist/src/modules/v4/kyberzap/kyberzap.model.d.ts +72 -0
  63. package/dist/src/modules/v4/kyberzap/kyberzap.model.js +79 -0
  64. package/dist/src/modules/v4/kyberzap/kyberzap.service.d.ts +15 -0
  65. package/dist/src/modules/v4/kyberzap/kyberzap.service.js +84 -0
  66. package/dist/src/modules/v4/liquidity/liquidity.controller.js +1 -1
  67. package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +1 -1
  68. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +224 -213
  69. package/dist/src/modules/v4/opportunity/opportunity.controller.js +39 -10
  70. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +252 -22
  71. package/dist/src/modules/v4/opportunity/opportunity.model.js +58 -15
  72. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +11 -11
  73. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +12 -232
  74. package/dist/src/modules/v4/opportunity/opportunity.service.js +0 -32
  75. package/dist/src/modules/v4/price/price.controller.js +1 -1
  76. package/dist/src/modules/v4/protocol/protocol.controller.d.ts +23 -24
  77. package/dist/src/modules/v4/protocol/protocol.controller.js +15 -9
  78. package/dist/src/modules/v4/protocol/protocol.model.d.ts +13 -1
  79. package/dist/src/modules/v4/protocol/protocol.model.js +12 -8
  80. package/dist/src/modules/v4/reward/reward.controller.js +1 -1
  81. package/dist/src/modules/v4/reward/reward.model.d.ts +44 -1
  82. package/dist/src/modules/v4/reward/reward.model.js +15 -0
  83. package/dist/src/modules/v4/reward/reward.repository.d.ts +2 -2
  84. package/dist/src/modules/v4/reward/reward.service.d.ts +11 -11
  85. package/dist/src/modules/v4/reward/reward.service.js +1 -1
  86. package/dist/src/modules/v4/router.d.ts +289 -268
  87. package/dist/src/modules/v4/status/status.controller.js +2 -3
  88. package/dist/src/modules/v4/status/status.model.d.ts +12 -0
  89. package/dist/src/modules/v4/status/status.model.js +12 -0
  90. package/dist/src/modules/v4/token/token.controller.d.ts +4 -4
  91. package/dist/src/modules/v4/token/token.controller.js +1 -1
  92. package/dist/src/modules/v4/token/token.model.d.ts +12 -0
  93. package/dist/src/modules/v4/token/token.model.js +12 -0
  94. package/dist/src/modules/v4/token/token.repository.d.ts +2 -2
  95. package/dist/src/modules/v4/token/token.service.d.ts +7 -7
  96. package/dist/src/modules/v4/tvl/tvl.model.d.ts +24 -0
  97. package/dist/src/modules/v4/tvl/tvl.model.js +15 -1
  98. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +1 -1
  99. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.js +9 -8
  100. package/dist/src/modules/v4/user/user.controller.d.ts +4 -4
  101. package/dist/src/modules/v4/user/user.controller.js +20 -17
  102. package/dist/src/modules/v4/user/user.model.d.ts +30 -0
  103. package/dist/src/modules/v4/user/user.model.js +27 -0
  104. package/dist/src/modules/v4/zyfi/zyfi.model.d.ts +45 -0
  105. package/dist/src/modules/v4/zyfi/zyfi.model.js +1 -0
  106. package/dist/src/modules/v4/zyfi/zyfi.service.d.ts +30 -0
  107. package/dist/src/modules/v4/zyfi/zyfi.service.js +35 -0
  108. package/dist/src/plugins/error-handling.plugin.d.ts +2 -2
  109. package/dist/src/plugins/error-handling.plugin.js +9 -3
  110. package/dist/src/plugins/logger.plugin.js +1 -20
  111. package/dist/src/routes/v1/allowances.d.ts +1 -1
  112. package/dist/src/routes/v1/allowances.js +1 -1
  113. package/dist/src/routes/v1/balances.d.ts +1 -1
  114. package/dist/src/routes/v1/balances.js +1 -1
  115. package/dist/src/routes/v1/prices.d.ts +1 -1
  116. package/dist/src/routes/v1/prices.js +1 -1
  117. package/dist/src/routes/v1/router.d.ts +102 -0
  118. package/dist/src/routes/v1/router.js +6 -0
  119. package/dist/src/routes/v1/tokens.d.ts +1 -1
  120. package/dist/src/routes/v1/tokens.js +1 -1
  121. package/dist/src/routes/v2/merkl.d.ts +5 -5
  122. package/dist/src/routes/v2/merkl.js +1 -1
  123. package/dist/src/routes/v2/router.d.ts +46 -0
  124. package/dist/src/routes/v2/router.js +3 -0
  125. package/dist/src/routes/v3/app.d.ts +1 -1
  126. package/dist/src/routes/v3/app.js +1 -1
  127. package/dist/src/routes/v3/blacklist.d.ts +1 -2479
  128. package/dist/src/routes/v3/blacklist.js +1 -1
  129. package/dist/src/routes/v3/campaignClaims.d.ts +1 -1
  130. package/dist/src/routes/v3/campaignClaims.js +1 -1
  131. package/dist/src/routes/v3/campaignReport.d.ts +1 -1
  132. package/dist/src/routes/v3/campaignReport.js +1 -1
  133. package/dist/src/routes/v3/campaignUnclaimed.d.ts +1 -1
  134. package/dist/src/routes/v3/campaignUnclaimed.js +1 -1
  135. package/dist/src/routes/v3/campaigns.d.ts +1 -2483
  136. package/dist/src/routes/v3/campaigns.js +1 -1
  137. package/dist/src/routes/v3/campaignsForMainParameter.d.ts +1 -1
  138. package/dist/src/routes/v3/campaignsForMainParameter.js +1 -1
  139. package/dist/src/routes/v3/campaignsInfo.d.ts +1 -2481
  140. package/dist/src/routes/v3/campaignsInfo.js +1 -1
  141. package/dist/src/routes/v3/campaignsRewardsReport.d.ts +1 -1
  142. package/dist/src/routes/v3/campaignsRewardsReport.js +1 -1
  143. package/dist/src/routes/v3/claims.d.ts +2 -2
  144. package/dist/src/routes/v3/claims.js +1 -1
  145. package/dist/src/routes/v3/compoundV2.d.ts +1 -1
  146. package/dist/src/routes/v3/compoundV2.js +1 -1
  147. package/dist/src/routes/v3/createCampaign.d.ts +1 -1
  148. package/dist/src/routes/v3/createCampaign.js +1 -1
  149. package/dist/src/routes/v3/dolomite.d.ts +1 -1
  150. package/dist/src/routes/v3/dolomite.js +1 -1
  151. package/dist/src/routes/v3/euler.d.ts +1 -1
  152. package/dist/src/routes/v3/euler.js +1 -1
  153. package/dist/src/routes/v3/fetch.d.ts +1 -1
  154. package/dist/src/routes/v3/fetch.js +1 -1
  155. package/dist/src/routes/v3/health.d.ts +1 -1
  156. package/dist/src/routes/v3/health.js +1 -1
  157. package/dist/src/routes/v3/lostyield.d.ts +1 -1
  158. package/dist/src/routes/v3/lostyield.js +1 -1
  159. package/dist/src/routes/v3/merkl.d.ts +1 -1
  160. package/dist/src/routes/v3/merkl.js +1 -1
  161. package/dist/src/routes/v3/morphoMarkets.d.ts +1 -1
  162. package/dist/src/routes/v3/morphoMarkets.js +1 -1
  163. package/dist/src/routes/v3/morphoVaults.d.ts +1 -1
  164. package/dist/src/routes/v3/morphoVaults.js +1 -1
  165. package/dist/src/routes/v3/multiChainPositions.d.ts +1 -2480
  166. package/dist/src/routes/v3/multiChainPositions.js +1 -1
  167. package/dist/src/routes/v3/opportunity.d.ts +1 -2483
  168. package/dist/src/routes/v3/opportunity.js +1 -1
  169. package/dist/src/routes/v3/overview.d.ts +1 -1
  170. package/dist/src/routes/v3/overview.js +1 -1
  171. package/dist/src/routes/v3/parse.d.ts +1 -1
  172. package/dist/src/routes/v3/parse.js +1 -1
  173. package/dist/src/routes/v3/payload.d.ts +1 -1
  174. package/dist/src/routes/v3/payload.js +1 -1
  175. package/dist/src/routes/v3/poolInfo.js +1 -1
  176. package/dist/src/routes/v3/positions.d.ts +1 -2479
  177. package/dist/src/routes/v3/positions.js +1 -1
  178. package/dist/src/routes/v3/radiant.d.ts +1 -1
  179. package/dist/src/routes/v3/radiant.js +1 -1
  180. package/dist/src/routes/v3/recipients.d.ts +1 -1
  181. package/dist/src/routes/v3/recipients.js +1 -1
  182. package/dist/src/routes/v3/rewards.d.ts +1 -2508
  183. package/dist/src/routes/v3/rewards.js +1 -1
  184. package/dist/src/routes/v3/rewardsReport.d.ts +1 -1
  185. package/dist/src/routes/v3/rewardsReport.js +1 -1
  186. package/dist/src/routes/v3/router.d.ts +1 -0
  187. package/dist/src/routes/v3/router.js +74 -0
  188. package/dist/src/routes/v3/silo.d.ts +1 -1
  189. package/dist/src/routes/v3/silo.js +1 -1
  190. package/dist/src/routes/v3/token.d.ts +1 -1
  191. package/dist/src/routes/v3/token.js +1 -1
  192. package/dist/src/routes/v3/tokenUnclaimed.d.ts +1 -1
  193. package/dist/src/routes/v3/tokenUnclaimed.js +1 -1
  194. package/dist/src/routes/v3/updates.d.ts +1 -2483
  195. package/dist/src/routes/v3/updates.js +1 -1
  196. package/dist/src/routes/v3/userRewards.d.ts +1 -2499
  197. package/dist/src/routes/v3/userRewards.js +1 -1
  198. package/dist/src/utils/decodeCalls.js +12 -1
  199. package/dist/src/utils/encodeCalls.js +26 -3
  200. package/dist/src/utils/generateCardName.js +2 -0
  201. package/dist/tsconfig.package.tsbuildinfo +1 -1
  202. package/package.json +2 -3
  203. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.d.ts +0 -3
  204. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.js +0 -155
  205. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.d.ts +0 -4
  206. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.js +0 -24
  207. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.d.ts +0 -4
  208. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +0 -230
  209. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.d.ts +0 -3
  210. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.js +0 -22
  211. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.d.ts +0 -3
  212. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.js +0 -22
  213. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.d.ts +0 -4
  214. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.js +0 -22
  215. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.d.ts +0 -3
  216. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.js +0 -75
@@ -1,583 +1,24 @@
1
- import { BN2Number, ERC20Interface } from "@sdk";
2
- import { utils } from "ethers";
3
- import { fetchEulerVaultName } from "./helpers/eulerVaultNames";
4
- import { getBlacklistedSupply, getWhitelistedSupply } from "./helpers/getBlacklistedSupply";
5
- import { fetchMetamorphoTvl } from "./helpers/metamorphoTvl";
6
- import { fetchSpliceInformation } from "./helpers/spliceTVL";
7
1
  import { tokenType } from "./helpers/tokenType";
8
- import { eulerInterface, torosInterface } from "./subtypesRound1";
2
+ import { processorMapping } from "./processor/processorMapping";
9
3
  export async function getTokenPricesInfo(index, type, typeInfo, calls, campaign, pricer) {
10
- if (type === tokenType.uniswapv2 ||
11
- type === tokenType.poolside ||
12
- type === tokenType.aerodrome ||
13
- type === tokenType.velodrome ||
14
- type === tokenType.dragonswap ||
15
- type === tokenType.akron) {
16
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
17
- const priceToken0 = (await pricer.get({ symbol: typeInfo.symbolToken0 })) ?? 0;
18
- const priceToken1 = (await pricer.get({ symbol: typeInfo.symbolToken1 })) ?? 0;
19
- let tvl = 0;
20
- if (priceToken0 !== 0 && priceToken1 !== 0) {
21
- tvl = priceToken0 * typeInfo.balanceToken0 + priceToken1 * typeInfo.balanceToken1;
4
+ const ProcessorClass = processorMapping[type];
5
+ try {
6
+ if (!ProcessorClass) {
7
+ throw new Error(`Processor not found for key: ${type}`);
22
8
  }
23
- const priceTargetToken = tvl / BN2Number(totalSupply, 18);
24
- let cardName;
25
- if (type === tokenType.uniswapv2) {
26
- cardName = `${typeInfo.protocol} ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
27
- }
28
- else if (type === tokenType.poolside) {
29
- cardName = `Poolside ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
30
- }
31
- else if (type === tokenType.aerodrome) {
32
- cardName = `Aerodrome ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
33
- }
34
- else if (type === tokenType.akron) {
35
- cardName = `Akron ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
36
- }
37
- else if (type === tokenType.dragonswap) {
38
- cardName = `Dragonswap ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
39
- }
40
- else {
41
- cardName = `Velodrome ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
42
- }
43
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
44
- return {
45
- type: type,
46
- calls: [],
47
- typeInfo: {
48
- ...typeInfo,
49
- priceTargetToken: priceTargetToken, // priceTargetToken is the price of the token in USD
50
- totalSupply: BN2Number(totalSupply, 18),
51
- tvl: tvl,
52
- cardName: cardName,
53
- blacklistedSupply: blacklistedSupply,
54
- },
55
- };
56
- }
57
- if (type === tokenType.balancerGauge) {
58
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
59
- const poolTokensinfo = {};
60
- let tvlUnderlyingPool = 0;
61
- const symbols = [];
62
- for (const poolToken of typeInfo.poolTokens) {
63
- const symbol = ERC20Interface.decodeFunctionResult("symbol", calls[index++])[0];
64
- const decimals = ERC20Interface.decodeFunctionResult("decimals", calls[index++])[0];
65
- poolTokensinfo[poolToken.token] = {
66
- symbol: symbol,
67
- decimals: decimals,
68
- amountInPool: BN2Number(poolToken.balance, decimals),
69
- price: (await pricer.get({ symbol: symbol })) ?? 0,
70
- };
71
- tvlUnderlyingPool += poolTokensinfo[poolToken.token].price * poolTokensinfo[poolToken.token].amountInPool;
72
- symbols.push(symbol);
73
- }
74
- const tvl = tvlUnderlyingPool * typeInfo.percentageOfSupplyUnderlyingPoolTokens;
75
- const priceTargetToken = tvl / BN2Number(totalSupply, 18);
76
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
77
- return {
78
- type: tokenType.balancerGauge,
79
- calls: [],
80
- typeInfo: {
81
- ...typeInfo,
82
- totalSupply: BN2Number(totalSupply, 18),
83
- poolTokens: poolTokensinfo,
84
- tvl: tvl,
85
- priceTargetToken: priceTargetToken,
86
- cardName: `Balancer Gauge ${symbols.join("/")}`,
87
- blacklistedSupply: blacklistedSupply,
88
- },
89
- };
90
- }
91
- // symbol is ECLP-USDC-USDT
92
- if (type === tokenType.balancerPool) {
93
- const totalSupplyBN = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
94
- const poolTokensinfo = {};
95
- let tvl = 0;
96
- const symbols = [];
97
- for (const poolToken of typeInfo.poolTokens) {
98
- const symbol = ERC20Interface.decodeFunctionResult("symbol", calls[index++])[0];
99
- const decimals = ERC20Interface.decodeFunctionResult("decimals", calls[index++])[0];
100
- poolTokensinfo[poolToken.token] = {
101
- symbol: symbol,
102
- decimals: decimals,
103
- amountInPool: BN2Number(poolToken.balance, decimals),
104
- price: (await pricer.get({ symbol: symbol })) ?? 0,
105
- };
106
- tvl += poolTokensinfo[poolToken.token].price * poolTokensinfo[poolToken.token].amountInPool;
107
- symbols.push(symbol);
108
- }
109
- const vaultBalance = ERC20Interface.decodeFunctionResult("balanceOf", calls[index++])[0];
110
- let blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
111
- const totalSupply = BN2Number(totalSupplyBN.sub(vaultBalance), campaign.campaignParameters.decimalsTargetToken);
112
- /** Override in case of vault pool */
113
- const vaultIndex = campaign.campaignParameters.blacklist
114
- ?.map(b => utils.getAddress(b))
115
- ?.indexOf(utils.getAddress(typeInfo.vault)); // Check if the vault is blacklisted
116
- if (vaultIndex !== -1) {
117
- blacklistedSupply -= BN2Number(ERC20Interface.decodeFunctionResult("balanceOf", calls[index + vaultIndex])[0], campaign.campaignParameters.decimalsTargetToken); // The vault balance was already removed from the total supply
118
- }
119
- const priceTargetToken = tvl / totalSupply;
120
- let cardName = `Balancer Pool ${symbols.join("/")}`;
121
- if (typeInfo.vault === "0xFB43069f6d0473B85686a85F4Ce4Fc1FD8F00875") {
122
- cardName = `Jellyverse Pool ${symbols.join("/")}`;
123
- }
124
- return {
125
- type: tokenType.balancerPool,
126
- calls: [],
127
- typeInfo: {
128
- ...typeInfo,
129
- totalSupply,
130
- poolTokens: poolTokensinfo,
131
- tvl: tvl,
132
- priceTargetToken: priceTargetToken,
133
- cardName: cardName,
134
- blacklistedSupply: blacklistedSupply,
135
- },
136
- };
137
- }
138
- if (type === tokenType.aura) {
139
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
140
- const poolTokensinfo = {};
141
- let poolTvl = 0;
142
- const symbols = [];
143
- for (const poolToken of typeInfo.poolTokens) {
144
- const symbol = ERC20Interface.decodeFunctionResult("symbol", calls[index++])[0];
145
- const decimals = ERC20Interface.decodeFunctionResult("decimals", calls[index++])[0];
146
- poolTokensinfo[poolToken.token] = {
147
- symbol: symbol,
148
- decimals: decimals,
149
- amountInPool: BN2Number(poolToken.balance, decimals),
150
- price: (await pricer.get({ symbol: symbol })) ?? 0,
151
- };
152
- poolTvl += poolTokensinfo[poolToken.token].price * poolTokensinfo[poolToken.token].amountInPool;
153
- symbols.push(symbol);
154
- }
155
- const percentageOfSupplyInAura = (typeInfo.auraBalance / typeInfo.totalSupplyGauge) * (typeInfo.gaugeBalance / typeInfo.totalSupplyBalancerPool);
156
- const tvl = poolTvl * percentageOfSupplyInAura;
157
- const priceTargetToken = tvl / BN2Number(totalSupply, 18);
158
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
159
- return {
160
- type: tokenType.aura,
161
- calls: [],
162
- typeInfo: {
163
- ...typeInfo,
164
- totalSupply: BN2Number(totalSupply, 18),
165
- poolTokens: poolTokensinfo,
166
- tvl: tvl,
167
- priceTargetToken: priceTargetToken,
168
- cardName: `Aura ${symbols.join("/")}`,
169
- blacklistedSupply: blacklistedSupply,
170
- },
171
- };
172
- }
173
- if (type === tokenType.gearbox) {
174
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
175
- const underlyingTokenPrice = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 0;
176
- const tvl = underlyingTokenPrice * typeInfo.totalAssets * typeInfo.percentageOfSupplyUnderlyingPoolTokens;
177
- const priceTargetToken = tvl / BN2Number(totalSupply, 18);
178
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
179
- return {
180
- type: tokenType.gearbox,
181
- calls: [],
182
- typeInfo: {
183
- ...typeInfo,
184
- totalSupply: BN2Number(totalSupply, 18),
185
- tvl: tvl,
186
- priceTargetToken: priceTargetToken,
187
- cardName: `Gearbox ${typeInfo.symbolUnderlyingToken} Deposit`,
188
- blacklistedSupply: blacklistedSupply,
189
- },
190
- };
191
- }
192
- if (type === tokenType.compound) {
193
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
194
- const baseTokenPrice = (await pricer.get({ symbol: typeInfo.symbolBaseToken })) ?? 0;
195
- const tvl = baseTokenPrice * (typeInfo.totalBorrow + typeInfo.balanceBaseToken);
196
- const priceTargetToken = tvl / BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
197
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
198
- return {
199
- type: tokenType.compound,
200
- calls: [],
201
- typeInfo: {
202
- ...typeInfo,
203
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
204
- tvl: tvl,
205
- priceTargetToken: priceTargetToken,
206
- cardName: `Lend ${typeInfo.symbolBaseToken} on Compound`,
207
- blacklistedSupply: blacklistedSupply,
208
- },
209
- };
210
- }
211
- if (type === tokenType.radiant_lend) {
212
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
213
- const tvl = typeInfo.priceTargetToken * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
214
- let cardToken = typeInfo.symbolUnderlyingToken;
215
- if (campaign.campaignParameters.symbolTargetToken.startsWith("r")) {
216
- cardToken = campaign.campaignParameters.symbolTargetToken.substring(1);
217
- }
218
- let finalSymbol = typeInfo.symbolUnderlyingToken;
219
- if (typeInfo.symbolUnderlyingToken.toLowerCase().includes("gm") && cardToken.toLowerCase().includes("gm")) {
220
- // Remove gm from the card name
221
- finalSymbol = cardToken.substring(2);
222
- }
223
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
224
- return {
225
- type: tokenType.radiant_lend,
226
- calls: [],
227
- typeInfo: {
228
- ...typeInfo,
229
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
230
- tvl: tvl,
231
- cardName: `Lend ${cardToken} on Radiant`,
232
- symbolUnderlyingToken: finalSymbol,
233
- blacklistedSupply: blacklistedSupply,
234
- },
235
- };
236
- }
237
- if (type === tokenType.radiant_borrow) {
238
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
239
- const tvl = typeInfo.priceTargetToken * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
240
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
241
- return {
242
- type: tokenType.radiant_borrow,
243
- calls: [],
244
- typeInfo: {
245
- ...typeInfo,
246
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
247
- tvl: tvl,
248
- cardName: `Borrow ${typeInfo.symbolUnderlyingToken} on Radiant`,
249
- blacklistedSupply: blacklistedSupply,
250
- },
251
- };
252
- }
253
- if (type === tokenType.ionic || type === tokenType.layerbank) {
254
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
255
- const baseTokenPrice = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 0;
256
- const tvl = baseTokenPrice * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken) * typeInfo.exchangeRate;
257
- const priceTargetToken = baseTokenPrice * typeInfo.exchangeRate;
258
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
259
- let cardName;
260
- if (type === tokenType.ionic) {
261
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on Ionic`;
262
- }
263
- else {
264
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on Layerbank`;
265
- }
266
- return {
267
- type: type,
268
- calls: [],
269
- typeInfo: {
270
- ...typeInfo,
271
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
272
- tvl: tvl,
273
- priceTargetToken: priceTargetToken,
274
- cardName: cardName,
275
- blacklistedSupply: blacklistedSupply,
276
- },
277
- };
278
- }
279
- if (type === tokenType.metamorpho) {
280
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
281
- let tvl = 0;
282
- try {
283
- tvl = await fetchMetamorphoTvl(campaign.chainId, typeInfo.tokenAddress);
284
- }
285
- catch (e) { }
286
- const priceTargetToken = tvl / BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
287
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
288
- return {
289
- type: tokenType.metamorpho,
290
- calls: [],
291
- typeInfo: {
292
- ...typeInfo,
293
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
294
- tvl: tvl,
295
- priceTargetToken: priceTargetToken,
296
- cardName: `Supply to ${typeInfo.name} on Morpho`,
297
- blacklistedSupply: blacklistedSupply,
298
- },
299
- };
300
- }
301
- if (type === tokenType.moonwell) {
302
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
303
- const baseTokenPrice = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 0;
304
- // Change exchange rate to implement the decimals differences
305
- typeInfo.exchangeRate =
306
- typeInfo.exchangeRate /
307
- 10 ** (typeInfo.decimalsUnderlyingToken - campaign.campaignParameters.decimalsTargetToken);
308
- const tvl = baseTokenPrice * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken) * typeInfo.exchangeRate;
309
- const priceTargetToken = baseTokenPrice * typeInfo.exchangeRate;
310
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
311
- return {
312
- type: tokenType.moonwell,
313
- calls: [],
314
- typeInfo: {
315
- ...typeInfo,
316
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
317
- tvl: tvl,
318
- priceTargetToken: priceTargetToken,
319
- cardName: `Supply ${typeInfo.symbolUnderlyingToken} on Moonwell`,
320
- blacklistedSupply: blacklistedSupply,
321
- },
322
- };
323
- }
324
- if (type === tokenType.aave_lending || type === tokenType.aave_borrowing) {
325
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
326
- const baseTokenPrice = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 0;
327
- const tvl = baseTokenPrice * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
328
- const priceTargetToken = baseTokenPrice;
329
- let cardName;
330
- if (type === tokenType.aave_lending) {
331
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on ${typeInfo.protocol}`;
332
- }
333
- else {
334
- cardName = `Borrow ${typeInfo.symbolUnderlyingToken} on ${typeInfo.protocol}`;
335
- }
336
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
337
- return {
338
- type: type,
339
- calls: [],
340
- typeInfo: {
341
- ...typeInfo,
342
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
343
- tvl: tvl,
344
- priceTargetToken: priceTargetToken,
345
- cardName: cardName,
346
- blacklistedSupply: blacklistedSupply,
347
- },
348
- };
9
+ const processorObject = new ProcessorClass();
10
+ return processorObject.computeRound5(index, type, typeInfo, calls, campaign, pricer);
349
11
  }
350
- if (type === tokenType.fraxlend || type === tokenType.sturdy_aggregator || type === tokenType.sturdy_silo) {
351
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
352
- const priceUnderlying = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 1;
353
- const tvl = typeInfo.sharePrice * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken) * priceUnderlying;
354
- let cardName;
355
- if (type === tokenType.fraxlend) {
356
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on Fraxlend`;
357
- }
358
- else if (type === tokenType.sturdy_aggregator) {
359
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on Sturdy ${typeInfo.name}`;
360
- }
361
- else {
362
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on Sturdy ${typeInfo.symbolCollateral} Silo`;
363
- }
364
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
365
- return {
366
- type: type,
367
- calls: [],
368
- typeInfo: {
369
- ...typeInfo,
370
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
371
- tvl: tvl,
372
- priceTargetToken: tvl / BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
373
- cardName: cardName,
374
- blacklistedSupply: blacklistedSupply,
375
- },
376
- };
377
- }
378
- if (type === tokenType.curve || type === tokenType.curve_2) {
379
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
380
- if (type === tokenType.curve_2) {
381
- const prices = [];
382
- for (const symbol of Object.values(typeInfo.poolTokens)) {
383
- const price = (await pricer.get({ symbol: symbol })) ?? 0;
384
- prices.push(price);
385
- }
386
- let minPrice = Math.min(...prices);
387
- if (!minPrice) {
388
- minPrice = 1;
389
- }
390
- typeInfo.lp_price = typeInfo.lp_price * minPrice;
391
- }
392
- const tvl = typeInfo.lp_price * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
393
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
12
+ catch (error) {
13
+ console.error(error);
394
14
  return {
395
- type: tokenType.curve,
15
+ type: tokenType.unknown,
396
16
  calls: [],
397
17
  typeInfo: {
398
- ...typeInfo,
399
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
400
- tvl: tvl,
401
- priceTargetToken: typeInfo.lp_price,
402
- cardName: `Curve ${Object.values(typeInfo.poolTokens).join("/")}`,
403
- blacklistedSupply: blacklistedSupply,
18
+ totalSupply: 0,
19
+ blacklistedSupply: 0,
20
+ priceTargetToken: 0,
404
21
  },
405
22
  };
406
23
  }
407
- if (type === tokenType.splice) {
408
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
409
- const { symbolUnderlyingToken, priceTargetToken, tvl } = await fetchSpliceInformation(campaign.campaignParameters.targetToken);
410
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
411
- return {
412
- type: type,
413
- calls: [],
414
- typeInfo: {
415
- ...typeInfo,
416
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
417
- tvl: tvl,
418
- symbolUnderlyingToken: symbolUnderlyingToken,
419
- priceTargetToken: priceTargetToken,
420
- cardName: `Supply ${symbolUnderlyingToken} on Splice`,
421
- blacklistedSupply: blacklistedSupply,
422
- },
423
- };
424
- }
425
- if (type === tokenType.toros) {
426
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
427
- const tokenPrice = torosInterface.decodeFunctionResult("tokenPrice", calls[index++])[0];
428
- const priceTargetToken = BN2Number(tokenPrice, 18);
429
- const tvl = priceTargetToken * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
430
- let symbolUnderlyingToken = "unknow";
431
- try {
432
- symbolUnderlyingToken = typeInfo.name.match(/\b[A-Z]+\b/g)[0];
433
- }
434
- catch (e) { }
435
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
436
- return {
437
- type: type,
438
- calls: [],
439
- typeInfo: {
440
- ...typeInfo,
441
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
442
- tvl: tvl,
443
- symbolUnderlyingToken: symbolUnderlyingToken,
444
- priceTargetToken: priceTargetToken,
445
- cardName: `${typeInfo.name} (${campaign.campaignParameters.symbolTargetToken}) on Toros`,
446
- blacklistedSupply: blacklistedSupply,
447
- },
448
- };
449
- }
450
- if (type === tokenType.fluid || type === tokenType.enzyme) {
451
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
452
- const priceUnderlying = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 0;
453
- const priceTargetToken = priceUnderlying * typeInfo.exchangeRate;
454
- const tvl = priceTargetToken * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
455
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
456
- let cardName;
457
- if (type === tokenType.fluid) {
458
- if (typeInfo.protocol === "Filament") {
459
- cardName = `Earn Yield on ${typeInfo.symbolUnderlyingToken} on Filament`;
460
- }
461
- else {
462
- cardName = `Lend ${typeInfo.symbolUnderlyingToken} on Fluid`;
463
- }
464
- }
465
- else {
466
- cardName = `Supply to the ${typeInfo.name} on Enzyme`;
467
- }
468
- return {
469
- type: type,
470
- calls: [],
471
- typeInfo: {
472
- ...typeInfo,
473
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
474
- tvl: tvl,
475
- priceTargetToken: priceTargetToken,
476
- cardName: cardName,
477
- blacklistedSupply: blacklistedSupply,
478
- },
479
- };
480
- }
481
- if (type === tokenType.silostaking) {
482
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
483
- const priceUnderlying = (await pricer.get({ symbol: campaign.campaignParameters.symbolTargetToken })) ?? 0;
484
- const priceTargetToken = priceUnderlying;
485
- const tvl = priceTargetToken * BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
486
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
487
- return {
488
- type: type,
489
- calls: [],
490
- typeInfo: {
491
- ...typeInfo,
492
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
493
- tvl: tvl,
494
- priceTargetToken: priceTargetToken,
495
- cardName: `Stake ${typeInfo.symbolUnderlyingToken} on Silo Staking`,
496
- blacklistedSupply: blacklistedSupply,
497
- },
498
- };
499
- }
500
- if (type === tokenType.euler_borrow || type === tokenType.euler_lend) {
501
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
502
- const priceUnderlying = (await pricer.get({ symbol: typeInfo.symbolUnderlyingToken })) ?? 0;
503
- let totalAssetsOrBorrows = 0;
504
- let cardName = "";
505
- if (type === tokenType.euler_lend) {
506
- totalAssetsOrBorrows = BN2Number(eulerInterface.decodeFunctionResult("totalAssets", calls[index++])[0], typeInfo.decimalsUnderlyingToken);
507
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on Euler V2`;
508
- const vaultName = await fetchEulerVaultName(typeInfo.tokenAddress, campaign.chainId);
509
- if (!!vaultName) {
510
- cardName = `Supply ${typeInfo.symbolUnderlyingToken} on ${vaultName} vault`;
511
- }
512
- }
513
- else {
514
- totalAssetsOrBorrows = BN2Number(eulerInterface.decodeFunctionResult("totalBorrows", calls[index++])[0], typeInfo.decimalsUnderlyingToken);
515
- cardName = `Borrow ${typeInfo.symbolUnderlyingToken} on Euler V2`;
516
- const vaultName = await fetchEulerVaultName(typeInfo.vault, campaign.chainId);
517
- if (!!vaultName) {
518
- cardName = `Borrow from ${vaultName} vault`;
519
- }
520
- }
521
- const tvl = priceUnderlying * totalAssetsOrBorrows;
522
- const priceTargetToken = tvl / BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken);
523
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
524
- return {
525
- type: type,
526
- calls: [],
527
- typeInfo: {
528
- ...typeInfo,
529
- totalSupply: BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken),
530
- tvl: tvl,
531
- priceTargetToken: priceTargetToken,
532
- cardName: cardName,
533
- blacklistedSupply: blacklistedSupply,
534
- },
535
- };
536
- }
537
- if (type === tokenType.beefy) {
538
- const totalSupplyUnderlying = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
539
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
540
- const priceToken0 = (await pricer.get({ symbol: typeInfo.symbolToken0 })) ?? 0;
541
- const priceToken1 = (await pricer.get({ symbol: typeInfo.symbolToken1 })) ?? 0;
542
- let tvl = 0;
543
- if (priceToken0 !== 0 && priceToken1 !== 0) {
544
- tvl = priceToken0 * typeInfo.balanceToken0 + priceToken1 * typeInfo.balanceToken1;
545
- }
546
- const priceTargetToken = (typeInfo.pricePerShare * tvl) / BN2Number(totalSupplyUnderlying);
547
- const cardName = `Moo Velodrome V2 ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
548
- const blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
549
- return {
550
- type: type,
551
- calls: [],
552
- typeInfo: {
553
- ...typeInfo,
554
- priceTargetToken: priceTargetToken, // priceTargetToken is the price of the token in USD
555
- totalSupply: BN2Number(totalSupply, 18),
556
- cardName: cardName,
557
- blacklistedSupply: blacklistedSupply,
558
- },
559
- };
560
- }
561
- // Unknown token
562
- const totalSupply = ERC20Interface.decodeFunctionResult("totalSupply", calls[index++])[0];
563
- const priceTargetToken = (await pricer.get({ symbol: campaign.campaignParameters.symbolTargetToken })) ?? 0;
564
- const tvl = BN2Number(totalSupply, campaign.campaignParameters.decimalsTargetToken) * priceTargetToken;
565
- let blacklistedSupply = getBlacklistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, calls);
566
- if (campaign.campaignParameters.whitelist.length > 0) {
567
- blacklistedSupply =
568
- BN2Number(totalSupply, 18) -
569
- getWhitelistedSupply(index, campaign.campaignParameters.decimalsTargetToken, campaign.campaignParameters.blacklist, campaign.campaignParameters.whitelist, calls);
570
- }
571
- return {
572
- type: tokenType.unknown,
573
- calls: [],
574
- typeInfo: {
575
- ...typeInfo,
576
- totalSupply: BN2Number(totalSupply, 18),
577
- tvl: tvl,
578
- priceTargetToken: priceTargetToken,
579
- cardName: `Hold ${typeInfo.name} (${campaign.campaignParameters.symbolTargetToken})`,
580
- blacklistedSupply: blacklistedSupply,
581
- },
582
- };
583
24
  }
@@ -1,23 +1,4 @@
1
- import { Interface } from "@ethersproject/abi";
1
+ import type { Campaign, CampaignParameters } from "@sdk";
2
2
  import type { Multicall3 } from "libs/sdk/src/generated/Multicall";
3
3
  import { type tokenTypeStruct } from "./helpers/tokenType";
4
- export declare const factoryInterface: Interface;
5
- export declare const balancerGaugeInterface: Interface;
6
- export declare const OneInchStakingInterface: Interface;
7
- export declare const compoundInterface: Interface;
8
- export declare const radiantInterface: Interface;
9
- export declare const ionicInterface: Interface;
10
- export declare const layerBankInterface: Interface;
11
- export declare const metamorphoInterface: Interface;
12
- export declare const moonwellInterface: Interface;
13
- export declare const aaveInterface: Interface;
14
- export declare const fraxlendInterface: Interface;
15
- export declare const curveInterface: Interface;
16
- export declare const sturdyInterface: Interface;
17
- export declare const torosInterface: Interface;
18
- export declare const auraInterface: Interface;
19
- export declare const fluidInterface: Interface;
20
- export declare const enzymeInterface: Interface;
21
- export declare const eulerInterface: Interface;
22
- export declare const beefyInterface: Interface;
23
- export declare function getTokenTypeRound1(calls: Multicall3.ResultStructOutput[], targetToken: string, index: number): tokenTypeStruct;
4
+ export declare function getTokenTypeRound1(calls: Multicall3.ResultStructOutput[], targetToken: string, index: number, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>): tokenTypeStruct;