@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
package/dist/src/index.js CHANGED
@@ -2,9 +2,11 @@ import { cors } from "@elysiajs/cors";
2
2
  import { swagger } from "@elysiajs/swagger";
3
3
  import axios from "axios";
4
4
  import { Elysia } from "elysia";
5
- import { autoroutes } from "elysia-autoroutes";
6
5
  import { redisClient } from "./cache/redis";
7
6
  import { v4 } from "./modules/v4/router";
7
+ import { v1 } from "./routes/v1/router";
8
+ import { v2 } from "./routes/v2/router";
9
+ import { v3 } from "./routes/v3/router";
8
10
  import { errorHandler } from "./utils/error";
9
11
  import { log } from "./utils/logger";
10
12
  import { apiDbClient, engineDbClient } from "./utils/prisma";
@@ -18,13 +20,17 @@ const app = new Elysia({
18
20
  },
19
21
  })
20
22
  .use(swagger({
23
+ scalarConfig: {
24
+ theme: "kepler",
25
+ darkMode: true,
26
+ },
21
27
  documentation: {
22
28
  info: {
23
29
  contact: {
24
30
  email: "contact@merkl.money",
25
31
  name: "Angle Labs",
26
32
  },
27
- description: "API to access data related to Merkl campaigns, built and maintained by Angle Labs. This API is provided as is, without any warranty of any kind.",
33
+ description: "The official API to access data related to Merkl campaigns, built and maintained by Angle Labs. This API is provided as is, without any warranty of any kind.",
28
34
  license: {
29
35
  name: "UNLICENSED",
30
36
  },
@@ -32,15 +38,58 @@ const app = new Elysia({
32
38
  version: "1.0.1",
33
39
  },
34
40
  },
35
- exclude: [/engine\/*/, /v1\/.*/, /v2\/.*/, /v3\/.*/, "/"],
41
+ exclude: [/v4\/.*/, "/"],
42
+ }))
43
+ .use(swagger({
44
+ path: "/v4/docs",
45
+ scalarConfig: {
46
+ theme: "kepler",
47
+ darkMode: true,
48
+ },
49
+ documentation: {
50
+ tags: [
51
+ {
52
+ name: "Opportunities",
53
+ description: "An opportunity represents a collection of campaigns.",
54
+ },
55
+ {
56
+ name: "Campaigns",
57
+ description: "Campaigns are designed to incentivize participation in a protocol by offering rewards to users for specific behaviors or actions.",
58
+ },
59
+ {
60
+ name: "Protocols",
61
+ description: "Endpoints related to protocols integrated by Merkl.",
62
+ },
63
+ {
64
+ name: "Chains",
65
+ description: "Endpoints related to chains integrated by Merkl.",
66
+ },
67
+ {
68
+ name: "Users",
69
+ description: "Endpoints related to Merkl users.",
70
+ },
71
+ ],
72
+ info: {
73
+ contact: {
74
+ email: "contact@merkl.money",
75
+ name: "Angle Labs",
76
+ },
77
+ description: "The official API to access data related to Merkl campaigns, built and maintained by Angle Labs. This API is provided as is, without any warranty of any kind.",
78
+ license: {
79
+ name: "UNLICENSED",
80
+ },
81
+ title: "Merkl API",
82
+ version: "1.0.1",
83
+ },
84
+ },
85
+ exclude: [/engine\/*/, /v1\/.*/, /v2\/.*/, /v3\/.*/, "/", /swagger\/*/],
36
86
  }))
37
87
  .use(cors())
38
88
  .get("/", () => "Merkl API")
89
+ .use(v1)
90
+ .use(v2)
91
+ .use(v3)
39
92
  .use(v4)
40
- .use(autoroutes({
41
- routesDir: `${import.meta.dir}/routes`,
42
- generateTags: false,
43
- }))
44
93
  .use(errorHandler())
45
94
  .listen(PORT, ({ hostname, port }) => {
46
95
  log.info(`🌐 Api started (${hostname}:${port})`);
@@ -1,12 +1,12 @@
1
1
  import { merklChainDataWithCache } from "../../merklChainData";
2
- import { BN2Number, ERC20Interface, YEAR, } from "@sdk";
2
+ import { BN2Number, BalancerPoolInterface, ERC20Interface, EnzymeInterface, FactoryInterface, MetamorphoInterface, YEAR, } from "@sdk";
3
3
  import { batchMulticallCallWithRetry } from "../../../utils/generic";
4
4
  import { Pricer } from "../../../utils/pricer";
5
5
  import { getLastEligibilityRatio } from "../utils/getLastEligibilityRatio";
6
6
  import { tokenType } from "./ERC20SubTypes/helpers/tokenType";
7
7
  import { getTokenPricesInfo } from "./ERC20SubTypes/subtypesPrices";
8
- import { enzymeInterface, factoryInterface, getTokenTypeRound1, metamorphoInterface, } from "./ERC20SubTypes/subtypesRound1";
9
- import { balancerPoolInterface, getTokenTypeRound2 } from "./ERC20SubTypes/subtypesRound2";
8
+ import { getTokenTypeRound1 } from "./ERC20SubTypes/subtypesRound1";
9
+ import { getTokenTypeRound2 } from "./ERC20SubTypes/subtypesRound2";
10
10
  import { getTokenTypeRound3 } from "./ERC20SubTypes/subtypesRound3";
11
11
  import { getTokenTypeRound4 } from "./ERC20SubTypes/subtypesRound4";
12
12
  export async function ERC20DynamicData(chainId, campaigns) {
@@ -31,27 +31,23 @@ export async function ERC20DynamicData(chainId, campaigns) {
31
31
  }
32
32
  callsRounds1.push({
33
33
  allowFailure: true,
34
- callData: factoryInterface.encodeFunctionData("factory"),
34
+ callData: FactoryInterface.encodeFunctionData("factory"),
35
35
  target: campaign.campaignParameters.targetToken,
36
- });
37
- callsRounds1.push({
36
+ }, {
38
37
  allowFailure: true,
39
- callData: metamorphoInterface.encodeFunctionData("MORPHO"),
38
+ callData: MetamorphoInterface.encodeFunctionData("MORPHO"),
40
39
  target: campaign.campaignParameters.targetToken,
41
- });
42
- callsRounds1.push({
40
+ }, {
43
41
  allowFailure: true,
44
42
  callData: ERC20Interface.encodeFunctionData("name"),
45
43
  target: campaign.campaignParameters.targetToken,
46
- });
47
- callsRounds1.push({
44
+ }, {
48
45
  allowFailure: true,
49
- callData: balancerPoolInterface.encodeFunctionData("getPoolId"),
46
+ callData: BalancerPoolInterface.encodeFunctionData("getPoolId"),
50
47
  target: campaign.campaignParameters.targetToken,
51
- });
52
- callsRounds1.push({
48
+ }, {
53
49
  allowFailure: true,
54
- callData: enzymeInterface.encodeFunctionData("getCreator"),
50
+ callData: EnzymeInterface.encodeFunctionData("getCreator"),
55
51
  target: campaign.campaignParameters.targetToken,
56
52
  });
57
53
  }
@@ -68,7 +64,7 @@ export async function ERC20DynamicData(chainId, campaigns) {
68
64
  calls: [],
69
65
  typeInfo: {},
70
66
  };
71
- typeStruct = getTokenTypeRound1(resultRound1, campaign.campaignParameters.targetToken, i);
67
+ typeStruct = getTokenTypeRound1(resultRound1, campaign.campaignParameters.targetToken, i, campaign);
72
68
  i += 5;
73
69
  tokenTypesByCampaign[campaign.campaignId] = typeStruct;
74
70
  callsRounds2.push(...typeStruct.calls);
@@ -128,12 +124,9 @@ export async function ERC20DynamicData(chainId, campaigns) {
128
124
  const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
129
125
  tokenTypesByCampaign[campaign.campaignId] = await getTokenPricesInfo(i, tokenTypesByCampaign[campaign.campaignId].type, tokenTypesByCampaign[campaign.campaignId].typeInfo, result, campaign, pricer);
130
126
  i += callsForCampaign;
131
- const totalSupplyTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.totalSupply;
132
- let whitelistedSupplyTargetToken = totalSupplyTargetToken - tokenTypesByCampaign[campaign.campaignId].typeInfo.blacklistedSupply;
127
+ const whitelistedSupplyTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.whitelistedSupplyTargetToken;
128
+ const totalSupplyTargetToken = whitelistedSupplyTargetToken;
133
129
  const priceTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.priceTargetToken;
134
- if (whitelistedSupplyTargetToken === 0) {
135
- whitelistedSupplyTargetToken = 0.00001;
136
- }
137
130
  let lastEligibilityRatio = 1;
138
131
  if (!!campaign.campaignParameters.hooks?.length) {
139
132
  lastEligibilityRatio = await getLastEligibilityRatio(campaign, chainId, currentRoot, []);
@@ -148,7 +141,7 @@ export async function ERC20DynamicData(chainId, campaigns) {
148
141
  campaign.campaignParameters.duration /
149
142
  (whitelistedSupplyTargetToken * priceTargetToken),
150
143
  totalSupplyTargetToken,
151
- tvl: totalSupplyTargetToken * priceTargetToken,
144
+ tvl: whitelistedSupplyTargetToken * priceTargetToken,
152
145
  type: tokenTypesByCampaign[campaign.campaignId].type,
153
146
  typeInfo: tokenTypesByCampaign[campaign.campaignId].typeInfo,
154
147
  priceRewardToken: priceRewardToken,
@@ -18,6 +18,7 @@ const factoryAddresses = {
18
18
  "0x35A338522a435D46f77Be32C70E215B813D0e3aC": tokenType.pendleYT, // Pendle YT Factory
19
19
  "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73": tokenType.pancakeswap, // PancakeSwap Factory BNB
20
20
  "0x70ee0A6DB4F5a2Dc4d9c0b57bE97B9987e75BAFD": tokenType.pendleYT, // Pendle YT Factory
21
+ "0xFD513630F697A9C1731F196185fb9ebA6eAAc20B": tokenType.cpmmGamma, // CPMMGAMMA Factory
21
22
  };
22
23
  export function getTypeFromFactoryAddress(address) {
23
24
  if (factoryAddresses[address]) {
@@ -58,7 +58,9 @@ export declare enum tokenType {
58
58
  pancakeswap = "pancakeswap",
59
59
  tempestStaking = "tempestStaking",
60
60
  holdstation = "holdstation",
61
- staking = "staking"
61
+ staking = "staking",
62
+ noLinkVault = "noLinkVault",
63
+ cpmmGamma = "cpmmGamma"
62
64
  }
63
65
  export declare const tokenTypeToProtocol: {
64
66
  [key in tokenType]: {
@@ -60,6 +60,8 @@ export var tokenType;
60
60
  tokenType["tempestStaking"] = "tempestStaking";
61
61
  tokenType["holdstation"] = "holdstation";
62
62
  tokenType["staking"] = "staking";
63
+ tokenType["noLinkVault"] = "noLinkVault";
64
+ tokenType["cpmmGamma"] = "cpmmGamma";
63
65
  })(tokenType || (tokenType = {}));
64
66
  export const tokenTypeToProtocol = {
65
67
  [tokenType.aave_borrowing]: { protocol: "Aave" },
@@ -143,4 +145,10 @@ export const tokenTypeToProtocol = {
143
145
  [tokenType.staking]: {
144
146
  protocol: "Staking",
145
147
  },
148
+ [tokenType.noLinkVault]: {
149
+ protocol: "NoLinkVault",
150
+ },
151
+ [tokenType.cpmmGamma]: {
152
+ protocol: "GammaSwap",
153
+ },
146
154
  };
@@ -0,0 +1,43 @@
1
+ import type { Pricer } from "../../../../../utils/pricer";
2
+ import { type Campaign, type CampaignParameters } from "@sdk";
3
+ import type { tokenType, tokenTypeStruct } from "../helpers/tokenType";
4
+ import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
5
+ type callType = {
6
+ key: keyof dataRawGamma;
7
+ call: string;
8
+ target: keyof callKeysGamma;
9
+ metaData?: keyof callKeysGamma;
10
+ };
11
+ type callKeysGamma = mandatoryCallKeys & {
12
+ token0: string;
13
+ token1: string;
14
+ CFMMPrice: string;
15
+ cfmm: string;
16
+ };
17
+ type dataRawGamma = callKeysGamma & {
18
+ tokensRaw: string[];
19
+ tokenBalances: string[];
20
+ symbolToken0: string;
21
+ symbolToken1: string;
22
+ decimalsToken0: string;
23
+ decimalsToken1: string;
24
+ balanceToken0: string;
25
+ balanceToken1: string;
26
+ };
27
+ type dataTypeGamma = dataType & {};
28
+ export declare class GammaProcessor extends GenericProcessor<callKeysGamma, dataRawGamma, dataTypeGamma> {
29
+ rounds: {
30
+ round1: callType[];
31
+ round2: callType[];
32
+ round3: callType[];
33
+ round4: callType[];
34
+ };
35
+ processingRound2(typeInfo: dataRawGamma): void;
36
+ processingRound5(index: number, type: tokenType, typeInfo: dataRawGamma, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<dataTypeGamma>;
37
+ computeRound1(type: tokenType, typeInfo: dataRawGamma): tokenTypeStruct;
38
+ computeRound2(index: number, type: tokenType, typeInfo: dataRawGamma, calls: string[]): tokenTypeStruct;
39
+ computeRound3(index: number, type: tokenType, typeInfo: dataRawGamma, calls: string[]): tokenTypeStruct;
40
+ computeRound4(index: number, type: tokenType, typeInfo: dataRawGamma, calls: string[], campaign: CampaignParameters<Campaign.ERC20>): tokenTypeStruct;
41
+ computeRound5(index: number, type: tokenType, typeInfo: dataRawGamma, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<tokenTypeStruct>;
42
+ }
43
+ export {};
@@ -0,0 +1,63 @@
1
+ import { generateCardName } from "../../../../../utils/generateCardName";
2
+ import { BN2Number } from "@sdk";
3
+ import { GenericProcessor } from "./GenericProcessor";
4
+ export class GammaProcessor extends GenericProcessor {
5
+ rounds = {
6
+ round1: [
7
+ { key: "tokensRaw", call: "tokensRaw", target: "tokenAddress" },
8
+ { key: "tokenBalances", call: "tokenBalances", target: "tokenAddress" },
9
+ ],
10
+ round2: [
11
+ { key: "symbolToken0", call: "symbol", target: "token0" },
12
+ { key: "symbolToken1", call: "symbol", target: "token1" },
13
+ { key: "decimalsToken0", call: "decimals", target: "token0" },
14
+ { key: "decimalsToken1", call: "decimals", target: "token1" },
15
+ ],
16
+ round3: [],
17
+ round4: [{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" }],
18
+ };
19
+ processingRound2(typeInfo) {
20
+ typeInfo.token0 = typeInfo.tokensRaw[0];
21
+ typeInfo.token1 = typeInfo.tokensRaw[1];
22
+ typeInfo.balanceToken0 = typeInfo.tokenBalances[0];
23
+ typeInfo.balanceToken1 = typeInfo.tokenBalances[1];
24
+ }
25
+ async processingRound5(index, type, typeInfo, calls, campaign, pricer) {
26
+ const { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
27
+ const decimalsToken0 = Number(typeInfo.decimalsToken0);
28
+ const decimalsToken1 = Number(typeInfo.decimalsToken1);
29
+ const priceToken0 = (await pricer.get({ symbol: typeInfo.symbolToken0 })) ?? 0;
30
+ const priceToken1 = (await pricer.get({ symbol: typeInfo.symbolToken1 })) ?? 0;
31
+ const balanceToken0 = BN2Number(typeInfo.balanceToken0, decimalsToken0);
32
+ const balanceToken1 = BN2Number(typeInfo.balanceToken1, decimalsToken1);
33
+ let tvl = 0;
34
+ if (priceToken0 !== 0 && priceToken1 !== 0) {
35
+ tvl = priceToken0 * balanceToken0 + priceToken1 * balanceToken1;
36
+ }
37
+ const priceTargetToken = tvl / totalSupply;
38
+ return {
39
+ ...typeInfo,
40
+ priceTargetToken,
41
+ totalSupply,
42
+ whitelistedSupplyTargetToken,
43
+ blacklistedSupply,
44
+ tvl,
45
+ cardName: generateCardName(type, typeInfo, campaign),
46
+ };
47
+ }
48
+ computeRound1(type, typeInfo) {
49
+ return super.computeRound1(type, typeInfo);
50
+ }
51
+ computeRound2(index, type, typeInfo, calls) {
52
+ return super.computeRound2(index, type, typeInfo, calls);
53
+ }
54
+ computeRound3(index, type, typeInfo, calls) {
55
+ return super.computeRound3(index, type, typeInfo, calls);
56
+ }
57
+ computeRound4(index, type, typeInfo, calls, campaign) {
58
+ return super.computeRound4(index, type, typeInfo, calls, campaign);
59
+ }
60
+ async computeRound5(index, type, typeInfo, calls, campaign, pricer) {
61
+ return super.computeRound5(index, type, typeInfo, calls, campaign, pricer);
62
+ }
63
+ }
@@ -60,10 +60,10 @@ export declare class GenericProcessor<Input extends callKeys, DataRaw extends da
60
60
  computeRound1(type: tokenType, typeInfo: DataRaw): tokenTypeStruct;
61
61
  computeRound2(index: number, type: tokenType, typeInfo: DataRaw, calls: string[]): tokenTypeStruct;
62
62
  computeRound3(index: number, type: tokenType, typeInfo: DataRaw, calls: string[]): tokenTypeStruct;
63
- computeRound4(index: number, type: tokenType, typeInfo: DataRaw, calls: string[], campaign: CampaignParameters<Campaign.ERC20>): tokenTypeStruct;
63
+ computeRound4(index: number, type: tokenType, typeInfo: DataRaw, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>): tokenTypeStruct;
64
64
  computeRound5(index: number, type: tokenType, typeInfo: DataRaw, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<tokenTypeStruct>;
65
- generateWhitelistCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20>): Multicall3.Call3Struct[];
66
- generateBlackListCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20>): Multicall3.Call3Struct[];
65
+ generateWhitelistCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>): Multicall3.Call3Struct[];
66
+ generateBlackListCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>): Multicall3.Call3Struct[];
67
67
  decodeListedSupply(index: number, decimals: number, list: string[], calls: string[]): string;
68
68
  decodeRound(round: callType[], index: number, calls: string[], type: tokenType, data: DataRaw): void;
69
69
  decodePreviousRound(round: roundType, calls: string[], data: DataRaw, type: tokenType, index: number): void;
@@ -177,7 +177,9 @@ export class GenericProcessor {
177
177
  index++;
178
178
  data[key] = value;
179
179
  }
180
- catch (error) { }
180
+ catch (error) {
181
+ index++;
182
+ }
181
183
  }
182
184
  else {
183
185
  const value = decodeCall(calls, index, call, type);
@@ -0,0 +1,36 @@
1
+ import type { Pricer } from "../../../../../utils/pricer";
2
+ import { type Campaign, type CampaignParameters } from "@sdk";
3
+ import type { tokenType, tokenTypeStruct } from "../helpers/tokenType";
4
+ import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
5
+ type callType = {
6
+ key: keyof dataRawNoLinkVault;
7
+ call: string;
8
+ target: keyof callKeysNoLinkVault;
9
+ metaData?: keyof callKeysNoLinkVault;
10
+ };
11
+ type callKeysNoLinkVault = mandatoryCallKeys & {
12
+ rateAccountant: string;
13
+ base: string;
14
+ };
15
+ type dataRawNoLinkVault = callKeysNoLinkVault & {
16
+ rate: string;
17
+ };
18
+ type dataTypeNoLinkVault = dataType & {
19
+ rate: number;
20
+ };
21
+ export declare class NoLinkVaultProcessor extends GenericProcessor<callKeysNoLinkVault, dataRawNoLinkVault, dataTypeNoLinkVault> {
22
+ rounds: {
23
+ round1: callType[];
24
+ round2: callType[];
25
+ round3: callType[];
26
+ round4: callType[];
27
+ };
28
+ processingRound1(typeInfo: dataRawNoLinkVault): void;
29
+ processingRound5(index: number, type: tokenType, typeInfo: dataRawNoLinkVault, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<dataTypeNoLinkVault>;
30
+ computeRound1(type: tokenType, typeInfo: dataRawNoLinkVault): tokenTypeStruct;
31
+ computeRound2(index: number, type: tokenType, typeInfo: dataRawNoLinkVault, calls: string[]): tokenTypeStruct;
32
+ computeRound3(index: number, type: tokenType, typeInfo: dataRawNoLinkVault, calls: string[]): tokenTypeStruct;
33
+ computeRound4(index: number, type: tokenType, typeInfo: dataRawNoLinkVault, calls: string[], campaign: CampaignParameters<Campaign.ERC20>): tokenTypeStruct;
34
+ computeRound5(index: number, type: tokenType, typeInfo: dataRawNoLinkVault, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<tokenTypeStruct>;
35
+ }
36
+ export {};
@@ -0,0 +1,51 @@
1
+ import { generateCardName } from "../../../../../utils/generateCardName";
2
+ import { BN2Number } from "@sdk";
3
+ import { GenericProcessor } from "./GenericProcessor";
4
+ export class NoLinkVaultProcessor extends GenericProcessor {
5
+ rounds = {
6
+ round1: [],
7
+ round2: [
8
+ { key: "rate", call: "getRate", target: "rateAccountant" },
9
+ { key: "base", call: "base", target: "rateAccountant" },
10
+ ],
11
+ round3: [],
12
+ round4: [{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" }],
13
+ };
14
+ processingRound1(typeInfo) {
15
+ if (typeInfo.tokenAddress === "0x196ead472583Bc1e9aF7A05F860D9857e1Bd3dCc") {
16
+ typeInfo.rateAccountant = "0xA9fB7e2922216deBE3Fd5E1bBE7591eE446Dc21c";
17
+ }
18
+ }
19
+ async processingRound5(index, type, typeInfo, calls, campaign, pricer) {
20
+ const rate = BN2Number(typeInfo.rate, Number(campaign.campaignParameters.decimalsTargetToken));
21
+ const { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
22
+ console.log(typeInfo.base);
23
+ const priceTargetToken = rate * ((await pricer.get({ symbol: typeInfo.base })) ?? 0);
24
+ const tvl = whitelistedSupplyTargetToken * priceTargetToken;
25
+ return {
26
+ tokenAddress: typeInfo.tokenAddress,
27
+ whitelistedSupplyTargetToken,
28
+ rate,
29
+ totalSupply,
30
+ priceTargetToken,
31
+ tvl,
32
+ blacklistedSupply,
33
+ cardName: generateCardName(type, typeInfo, campaign),
34
+ };
35
+ }
36
+ computeRound1(type, typeInfo) {
37
+ return super.computeRound1(type, typeInfo);
38
+ }
39
+ computeRound2(index, type, typeInfo, calls) {
40
+ return super.computeRound2(index, type, typeInfo, calls);
41
+ }
42
+ computeRound3(index, type, typeInfo, calls) {
43
+ return super.computeRound3(index, type, typeInfo, calls);
44
+ }
45
+ computeRound4(index, type, typeInfo, calls, campaign) {
46
+ return super.computeRound4(index, type, typeInfo, calls, campaign);
47
+ }
48
+ async computeRound5(index, type, typeInfo, calls, campaign, pricer) {
49
+ return super.computeRound5(index, type, typeInfo, calls, campaign, pricer);
50
+ }
51
+ }
@@ -25,7 +25,6 @@ export declare class StakingProcessor extends GenericProcessor<callKeysStaking,
25
25
  round3: callType[];
26
26
  round4: callType[];
27
27
  };
28
- processingRound1(typeInfo: dataRawStaking): void;
29
28
  processingRound2(typeInfo: dataRawStaking): void;
30
29
  processingRound3(typeInfo: dataRawStaking): void;
31
30
  processingRound4(typeInfo: dataRawStaking): void;
@@ -10,16 +10,24 @@ export class StakingProcessor extends GenericProcessor {
10
10
  round4: [{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" }],
11
11
  };
12
12
  // override computeRound1(): void {}
13
- processingRound1(typeInfo) {
14
- if (typeInfo.stakingContract === "0x18eeD20f71BEf84B605253C89A7576E3634134C0") {
15
- typeInfo.stakingSymbol = "CyberStaking";
16
- }
17
- }
18
13
  processingRound2(typeInfo) {
19
- typeInfo.stakingSymbol = typeInfo.eip712DomainName;
14
+ if (typeInfo.stakingSymbol === undefined) {
15
+ typeInfo.stakingSymbol = typeInfo.eip712DomainName;
16
+ }
20
17
  }
21
18
  processingRound3(typeInfo) {
22
- super.processingRound3(typeInfo);
19
+ if (typeInfo.stakingSymbol === undefined &&
20
+ typeInfo.stakingContract === "0x18eeD20f71BEf84B605253C89A7576E3634134C0") {
21
+ typeInfo.stakingSymbol = "CyberStaking";
22
+ }
23
+ if (typeInfo.stakingSymbol === undefined &&
24
+ typeInfo.stakingContract === "0x68754d29f2e97B837Cb622ccfF325adAC27E9977") {
25
+ typeInfo.stakingSymbol = "Karak";
26
+ }
27
+ if (typeInfo.stakingSymbol === undefined &&
28
+ typeInfo.stakingContract === "0xcd28cF8f7755f03967D27E128B38022B63919836") {
29
+ typeInfo.stakingSymbol = "Llamalend";
30
+ }
23
31
  }
24
32
  processingRound4(typeInfo) {
25
33
  super.processingRound4(typeInfo);
@@ -11,11 +11,13 @@ import { EulerBorrowProcessor } from "./EulerBorrowProcessor";
11
11
  import { EulerLendProcessor } from "./EulerLendProcessor";
12
12
  import { FluidProcessor } from "./FluidProcessor";
13
13
  import { FraxProcessor } from "./FraxProcessor";
14
+ import { GammaProcessor } from "./GammaProcessor";
14
15
  import { GearboxProcessor } from "./GearboxProcessor";
15
16
  import { GenericProcessor } from "./GenericProcessor";
16
17
  import { HoldStationProcessor } from "./HoldStationProcessor";
17
18
  import { MaverickBPProcessor } from "./MaverickBPProcessor";
18
19
  import { MetamorphoProcessor } from "./MetamorphoProcessor";
20
+ import { NoLinkVaultProcessor } from "./NoLinkVaultProcessor";
19
21
  import { PendleProcessor } from "./PendleProcessor";
20
22
  import { PendleYTProcessor } from "./PendleYTProcessor";
21
23
  import { RadiantProcessor } from "./RadiantProcessor";
@@ -90,4 +92,6 @@ export const processorMapping = {
90
92
  [tokenType.tempestStaking]: TempestVaultProcessor,
91
93
  [tokenType.holdstation]: HoldStationProcessor,
92
94
  [tokenType.staking]: StakingProcessor,
95
+ [tokenType.noLinkVault]: NoLinkVaultProcessor,
96
+ [tokenType.cpmmGamma]: GammaProcessor,
93
97
  };
@@ -1,4 +1,4 @@
1
1
  import type { Pricer } from "../../../../utils/pricer";
2
- import { type Campaign, type CampaignParameters } from "@sdk";
2
+ import type { Campaign, CampaignParameters } from "@sdk";
3
3
  import { tokenType, type tokenTypeStruct } from "./helpers/tokenType";
4
4
  export declare function getTokenPricesInfo(index: number, type: tokenType, typeInfo: any, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<tokenTypeStruct>;