@merkl/api 0.10.199 → 0.10.201

Sign up to get free protection for your applications and to get access to all the features.
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;