@merkl/api 0.10.199 → 0.10.200

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 (215) 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 +4 -4
  39. package/dist/src/modules/v4/campaign/campaign.controller.js +14 -4
  40. package/dist/src/modules/v4/campaign/campaign.model.d.ts +50 -5
  41. package/dist/src/modules/v4/campaign/campaign.model.js +47 -13
  42. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -2
  43. package/dist/src/modules/v4/campaign/campaign.service.d.ts +2 -2
  44. package/dist/src/modules/v4/chain/chain.controller.d.ts +2 -2
  45. package/dist/src/modules/v4/chain/chain.controller.js +7 -2
  46. package/dist/src/modules/v4/chain/chain.model.d.ts +6 -1
  47. package/dist/src/modules/v4/chain/chain.model.js +8 -1
  48. package/dist/src/modules/v4/chain/chain.repository.js +1 -1
  49. package/dist/src/modules/v4/claims/claims.controller.js +1 -1
  50. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +4 -1
  51. package/dist/src/modules/v4/enso/enso.model.d.ts +1 -1
  52. package/dist/src/modules/v4/enso/enso.model.js +2 -1
  53. package/dist/src/modules/v4/enso/enso.service.d.ts +0 -1
  54. package/dist/src/modules/v4/enso/enso.service.js +4 -4
  55. package/dist/src/modules/v4/interaction/interaction.controller.d.ts +26 -17
  56. package/dist/src/modules/v4/interaction/interaction.controller.js +19 -28
  57. package/dist/src/modules/v4/interaction/interaction.model.d.ts +17 -5
  58. package/dist/src/modules/v4/interaction/interaction.model.js +3 -3
  59. package/dist/src/modules/v4/interaction/interaction.service.d.ts +18 -3
  60. package/dist/src/modules/v4/interaction/interaction.service.js +89 -11
  61. package/dist/src/modules/v4/kyberzap/kyberzap.model.d.ts +72 -0
  62. package/dist/src/modules/v4/kyberzap/kyberzap.model.js +79 -0
  63. package/dist/src/modules/v4/kyberzap/kyberzap.service.d.ts +15 -0
  64. package/dist/src/modules/v4/kyberzap/kyberzap.service.js +84 -0
  65. package/dist/src/modules/v4/liquidity/liquidity.controller.js +1 -1
  66. package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +1 -1
  67. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +224 -213
  68. package/dist/src/modules/v4/opportunity/opportunity.controller.js +39 -10
  69. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +252 -22
  70. package/dist/src/modules/v4/opportunity/opportunity.model.js +58 -15
  71. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +11 -11
  72. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +12 -232
  73. package/dist/src/modules/v4/opportunity/opportunity.service.js +0 -32
  74. package/dist/src/modules/v4/price/price.controller.js +1 -1
  75. package/dist/src/modules/v4/protocol/protocol.controller.d.ts +23 -24
  76. package/dist/src/modules/v4/protocol/protocol.controller.js +15 -9
  77. package/dist/src/modules/v4/protocol/protocol.model.d.ts +13 -1
  78. package/dist/src/modules/v4/protocol/protocol.model.js +12 -8
  79. package/dist/src/modules/v4/reward/reward.controller.js +1 -1
  80. package/dist/src/modules/v4/reward/reward.model.d.ts +44 -1
  81. package/dist/src/modules/v4/reward/reward.model.js +15 -0
  82. package/dist/src/modules/v4/reward/reward.repository.d.ts +2 -2
  83. package/dist/src/modules/v4/reward/reward.service.d.ts +11 -11
  84. package/dist/src/modules/v4/reward/reward.service.js +1 -1
  85. package/dist/src/modules/v4/router.d.ts +287 -268
  86. package/dist/src/modules/v4/status/status.controller.js +2 -3
  87. package/dist/src/modules/v4/status/status.model.d.ts +12 -0
  88. package/dist/src/modules/v4/status/status.model.js +12 -0
  89. package/dist/src/modules/v4/token/token.controller.d.ts +4 -4
  90. package/dist/src/modules/v4/token/token.controller.js +1 -1
  91. package/dist/src/modules/v4/token/token.model.d.ts +12 -0
  92. package/dist/src/modules/v4/token/token.model.js +12 -0
  93. package/dist/src/modules/v4/token/token.repository.d.ts +2 -2
  94. package/dist/src/modules/v4/token/token.service.d.ts +7 -7
  95. package/dist/src/modules/v4/tvl/tvl.model.d.ts +24 -0
  96. package/dist/src/modules/v4/tvl/tvl.model.js +15 -1
  97. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +1 -1
  98. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.js +9 -8
  99. package/dist/src/modules/v4/user/user.controller.d.ts +4 -4
  100. package/dist/src/modules/v4/user/user.controller.js +20 -17
  101. package/dist/src/modules/v4/user/user.model.d.ts +30 -0
  102. package/dist/src/modules/v4/user/user.model.js +27 -0
  103. package/dist/src/modules/v4/zyfi/zyfi.model.d.ts +45 -0
  104. package/dist/src/modules/v4/zyfi/zyfi.model.js +1 -0
  105. package/dist/src/modules/v4/zyfi/zyfi.service.d.ts +30 -0
  106. package/dist/src/modules/v4/zyfi/zyfi.service.js +35 -0
  107. package/dist/src/plugins/error-handling.plugin.d.ts +2 -2
  108. package/dist/src/plugins/error-handling.plugin.js +9 -3
  109. package/dist/src/plugins/logger.plugin.js +1 -20
  110. package/dist/src/routes/v1/allowances.d.ts +1 -1
  111. package/dist/src/routes/v1/allowances.js +1 -1
  112. package/dist/src/routes/v1/balances.d.ts +1 -1
  113. package/dist/src/routes/v1/balances.js +1 -1
  114. package/dist/src/routes/v1/prices.d.ts +1 -1
  115. package/dist/src/routes/v1/prices.js +1 -1
  116. package/dist/src/routes/v1/router.d.ts +102 -0
  117. package/dist/src/routes/v1/router.js +6 -0
  118. package/dist/src/routes/v1/tokens.d.ts +1 -1
  119. package/dist/src/routes/v1/tokens.js +1 -1
  120. package/dist/src/routes/v2/merkl.d.ts +5 -5
  121. package/dist/src/routes/v2/merkl.js +1 -1
  122. package/dist/src/routes/v2/router.d.ts +46 -0
  123. package/dist/src/routes/v2/router.js +3 -0
  124. package/dist/src/routes/v3/app.d.ts +1 -1
  125. package/dist/src/routes/v3/app.js +1 -1
  126. package/dist/src/routes/v3/blacklist.d.ts +1 -2479
  127. package/dist/src/routes/v3/blacklist.js +1 -1
  128. package/dist/src/routes/v3/campaignClaims.d.ts +1 -1
  129. package/dist/src/routes/v3/campaignClaims.js +1 -1
  130. package/dist/src/routes/v3/campaignReport.d.ts +1 -1
  131. package/dist/src/routes/v3/campaignReport.js +1 -1
  132. package/dist/src/routes/v3/campaignUnclaimed.d.ts +1 -1
  133. package/dist/src/routes/v3/campaignUnclaimed.js +1 -1
  134. package/dist/src/routes/v3/campaigns.d.ts +1 -2483
  135. package/dist/src/routes/v3/campaigns.js +1 -1
  136. package/dist/src/routes/v3/campaignsForMainParameter.d.ts +1 -1
  137. package/dist/src/routes/v3/campaignsForMainParameter.js +1 -1
  138. package/dist/src/routes/v3/campaignsInfo.d.ts +1 -2481
  139. package/dist/src/routes/v3/campaignsInfo.js +1 -1
  140. package/dist/src/routes/v3/campaignsRewardsReport.d.ts +1 -1
  141. package/dist/src/routes/v3/campaignsRewardsReport.js +1 -1
  142. package/dist/src/routes/v3/claims.d.ts +1 -1
  143. package/dist/src/routes/v3/claims.js +1 -1
  144. package/dist/src/routes/v3/compoundV2.d.ts +1 -1
  145. package/dist/src/routes/v3/compoundV2.js +1 -1
  146. package/dist/src/routes/v3/createCampaign.d.ts +1 -1
  147. package/dist/src/routes/v3/createCampaign.js +1 -1
  148. package/dist/src/routes/v3/dolomite.d.ts +1 -1
  149. package/dist/src/routes/v3/dolomite.js +1 -1
  150. package/dist/src/routes/v3/euler.d.ts +1 -1
  151. package/dist/src/routes/v3/euler.js +1 -1
  152. package/dist/src/routes/v3/fetch.d.ts +1 -1
  153. package/dist/src/routes/v3/fetch.js +1 -1
  154. package/dist/src/routes/v3/health.d.ts +1 -1
  155. package/dist/src/routes/v3/health.js +1 -1
  156. package/dist/src/routes/v3/lostyield.d.ts +1 -1
  157. package/dist/src/routes/v3/lostyield.js +1 -1
  158. package/dist/src/routes/v3/merkl.d.ts +1 -1
  159. package/dist/src/routes/v3/merkl.js +1 -1
  160. package/dist/src/routes/v3/morphoMarkets.d.ts +1 -1
  161. package/dist/src/routes/v3/morphoMarkets.js +1 -1
  162. package/dist/src/routes/v3/morphoVaults.d.ts +1 -1
  163. package/dist/src/routes/v3/morphoVaults.js +1 -1
  164. package/dist/src/routes/v3/multiChainPositions.d.ts +1 -2480
  165. package/dist/src/routes/v3/multiChainPositions.js +1 -1
  166. package/dist/src/routes/v3/opportunity.d.ts +1 -2483
  167. package/dist/src/routes/v3/opportunity.js +1 -1
  168. package/dist/src/routes/v3/overview.d.ts +1 -1
  169. package/dist/src/routes/v3/overview.js +1 -1
  170. package/dist/src/routes/v3/parse.d.ts +1 -1
  171. package/dist/src/routes/v3/parse.js +1 -1
  172. package/dist/src/routes/v3/payload.d.ts +1 -1
  173. package/dist/src/routes/v3/payload.js +1 -1
  174. package/dist/src/routes/v3/poolInfo.js +1 -1
  175. package/dist/src/routes/v3/positions.d.ts +1 -2479
  176. package/dist/src/routes/v3/positions.js +1 -1
  177. package/dist/src/routes/v3/radiant.d.ts +1 -1
  178. package/dist/src/routes/v3/radiant.js +1 -1
  179. package/dist/src/routes/v3/recipients.d.ts +1 -1
  180. package/dist/src/routes/v3/recipients.js +1 -1
  181. package/dist/src/routes/v3/rewards.d.ts +1 -2508
  182. package/dist/src/routes/v3/rewards.js +1 -1
  183. package/dist/src/routes/v3/rewardsReport.d.ts +1 -1
  184. package/dist/src/routes/v3/rewardsReport.js +1 -1
  185. package/dist/src/routes/v3/router.d.ts +1 -0
  186. package/dist/src/routes/v3/router.js +74 -0
  187. package/dist/src/routes/v3/silo.d.ts +1 -1
  188. package/dist/src/routes/v3/silo.js +1 -1
  189. package/dist/src/routes/v3/token.d.ts +1 -1
  190. package/dist/src/routes/v3/token.js +1 -1
  191. package/dist/src/routes/v3/tokenUnclaimed.d.ts +1 -1
  192. package/dist/src/routes/v3/tokenUnclaimed.js +1 -1
  193. package/dist/src/routes/v3/updates.d.ts +1 -2483
  194. package/dist/src/routes/v3/updates.js +1 -1
  195. package/dist/src/routes/v3/userRewards.d.ts +1 -2499
  196. package/dist/src/routes/v3/userRewards.js +1 -1
  197. package/dist/src/utils/decodeCalls.js +12 -1
  198. package/dist/src/utils/encodeCalls.js +26 -3
  199. package/dist/src/utils/generateCardName.js +2 -0
  200. package/dist/tsconfig.package.tsbuildinfo +1 -1
  201. package/package.json +2 -3
  202. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.d.ts +0 -3
  203. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.js +0 -155
  204. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.d.ts +0 -4
  205. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.js +0 -24
  206. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.d.ts +0 -4
  207. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +0 -230
  208. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.d.ts +0 -3
  209. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.js +0 -22
  210. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.d.ts +0 -3
  211. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.js +0 -22
  212. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.d.ts +0 -4
  213. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.js +0 -22
  214. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.d.ts +0 -3
  215. 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;