@merkl/api 0.20.64 → 0.20.65

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 (135) hide show
  1. package/dist/database/index.js +5 -1
  2. package/dist/src/eden/index.d.ts +115 -60
  3. package/dist/src/engine/dynamicData/implementations/Erc20.js +80 -42
  4. package/dist/src/engine/erc20SubTypeProcessors/GenericProcessor.d.ts +18 -18
  5. package/dist/src/engine/erc20SubTypeProcessors/GenericProcessor.js +33 -30
  6. package/dist/src/engine/erc20SubTypeProcessors/{helpers/tokenType.d.ts → constants.d.ts} +0 -6
  7. package/dist/src/engine/erc20SubTypeProcessors/factory.d.ts +6 -0
  8. package/dist/src/engine/erc20SubTypeProcessors/{implementations/processorMapping.js → factory.js} +49 -48
  9. package/dist/src/engine/erc20SubTypeProcessors/helpers/factoryFinder.d.ts +1 -1
  10. package/dist/src/engine/erc20SubTypeProcessors/helpers/factoryFinder.js +1 -1
  11. package/dist/src/engine/erc20SubTypeProcessors/helpers/hardcoded.d.ts +1 -1
  12. package/dist/src/engine/erc20SubTypeProcessors/helpers/hardcoded.js +1 -1
  13. package/dist/src/engine/erc20SubTypeProcessors/helpers/ownerFinder.d.ts +1 -1
  14. package/dist/src/engine/erc20SubTypeProcessors/helpers/ownerFinder.js +1 -1
  15. package/dist/src/engine/erc20SubTypeProcessors/implementations/AaveProcessor.d.ts +1 -2
  16. package/dist/src/engine/erc20SubTypeProcessors/implementations/AaveProcessor.js +1 -2
  17. package/dist/src/engine/erc20SubTypeProcessors/implementations/AnglesLiquid.d.ts +2 -3
  18. package/dist/src/engine/erc20SubTypeProcessors/implementations/AnglesLiquid.js +1 -5
  19. package/dist/src/engine/erc20SubTypeProcessors/implementations/AssetProcessor.d.ts +1 -2
  20. package/dist/src/engine/erc20SubTypeProcessors/implementations/AssetProcessor.js +2 -2
  21. package/dist/src/engine/erc20SubTypeProcessors/implementations/AuraProcessor.d.ts +3 -2
  22. package/dist/src/engine/erc20SubTypeProcessors/implementations/AuraProcessor.js +6 -7
  23. package/dist/src/engine/erc20SubTypeProcessors/implementations/BEXRewardGaugeProcessor.d.ts +3 -2
  24. package/dist/src/engine/erc20SubTypeProcessors/implementations/BEXRewardGaugeProcessor.js +4 -5
  25. package/dist/src/engine/erc20SubTypeProcessors/implementations/BalancerGaugeProcessor.d.ts +3 -2
  26. package/dist/src/engine/erc20SubTypeProcessors/implementations/BalancerGaugeProcessor.js +3 -4
  27. package/dist/src/engine/erc20SubTypeProcessors/implementations/BalancerPoolProcessor.d.ts +3 -2
  28. package/dist/src/engine/erc20SubTypeProcessors/implementations/BalancerPoolProcessor.js +3 -4
  29. package/dist/src/engine/erc20SubTypeProcessors/implementations/BalancerV3PoolProcessor.d.ts +2 -2
  30. package/dist/src/engine/erc20SubTypeProcessors/implementations/BalancerV3PoolProcessor.js +1 -2
  31. package/dist/src/engine/erc20SubTypeProcessors/implementations/BeefyProcessor.d.ts +2 -2
  32. package/dist/src/engine/erc20SubTypeProcessors/implementations/BeefyProcessor.js +3 -3
  33. package/dist/src/engine/erc20SubTypeProcessors/implementations/BunniV2Processor.d.ts +2 -2
  34. package/dist/src/engine/erc20SubTypeProcessors/implementations/BunniV2Processor.js +2 -2
  35. package/dist/src/engine/erc20SubTypeProcessors/implementations/CompoundProcessor.d.ts +2 -2
  36. package/dist/src/engine/erc20SubTypeProcessors/implementations/CompoundProcessor.js +2 -3
  37. package/dist/src/engine/erc20SubTypeProcessors/implementations/ERC4626Processor.d.ts +1 -2
  38. package/dist/src/engine/erc20SubTypeProcessors/implementations/ERC4626Processor.js +1 -1
  39. package/dist/src/engine/erc20SubTypeProcessors/implementations/EnzymeProcessor.d.ts +3 -2
  40. package/dist/src/engine/erc20SubTypeProcessors/implementations/EnzymeProcessor.js +2 -2
  41. package/dist/src/engine/erc20SubTypeProcessors/implementations/EqualizerGaugeProcessor.d.ts +1 -2
  42. package/dist/src/engine/erc20SubTypeProcessors/implementations/EqualizerGaugeProcessor.js +1 -1
  43. package/dist/src/engine/erc20SubTypeProcessors/implementations/EulerBorrowProcessor.d.ts +1 -2
  44. package/dist/src/engine/erc20SubTypeProcessors/implementations/EulerBorrowProcessor.js +1 -1
  45. package/dist/src/engine/erc20SubTypeProcessors/implementations/EulerLendProcessor.d.ts +1 -2
  46. package/dist/src/engine/erc20SubTypeProcessors/implementations/EulerLendProcessor.js +1 -1
  47. package/dist/src/engine/erc20SubTypeProcessors/implementations/FluidProcessor.d.ts +2 -2
  48. package/dist/src/engine/erc20SubTypeProcessors/implementations/FluidProcessor.js +2 -3
  49. package/dist/src/engine/erc20SubTypeProcessors/implementations/FraxProcessor.d.ts +1 -2
  50. package/dist/src/engine/erc20SubTypeProcessors/implementations/FraxProcessor.js +2 -2
  51. package/dist/src/engine/erc20SubTypeProcessors/implementations/GammaProcessor.d.ts +2 -3
  52. package/dist/src/engine/erc20SubTypeProcessors/implementations/GammaProcessor.js +1 -4
  53. package/dist/src/engine/erc20SubTypeProcessors/implementations/GearboxProcessor.d.ts +2 -2
  54. package/dist/src/engine/erc20SubTypeProcessors/implementations/GearboxProcessor.js +2 -3
  55. package/dist/src/engine/erc20SubTypeProcessors/implementations/HanjiVaultProcessor.d.ts +3 -2
  56. package/dist/src/engine/erc20SubTypeProcessors/implementations/HanjiVaultProcessor.js +4 -5
  57. package/dist/src/engine/erc20SubTypeProcessors/implementations/HoldStationProcessor.d.ts +1 -2
  58. package/dist/src/engine/erc20SubTypeProcessors/implementations/HoldStationProcessor.js +1 -1
  59. package/dist/src/engine/erc20SubTypeProcessors/implementations/HourglassProcessor.d.ts +2 -2
  60. package/dist/src/engine/erc20SubTypeProcessors/implementations/HourglassProcessor.js +2 -3
  61. package/dist/src/engine/erc20SubTypeProcessors/implementations/MaverickBPProcessor.d.ts +2 -2
  62. package/dist/src/engine/erc20SubTypeProcessors/implementations/MaverickBPProcessor.js +2 -2
  63. package/dist/src/engine/erc20SubTypeProcessors/implementations/MetamorphoProcessor.d.ts +2 -2
  64. package/dist/src/engine/erc20SubTypeProcessors/implementations/MetamorphoProcessor.js +1 -2
  65. package/dist/src/engine/erc20SubTypeProcessors/implementations/NoLinkVaultProcessor.d.ts +2 -3
  66. package/dist/src/engine/erc20SubTypeProcessors/implementations/NoLinkVaultProcessor.js +3 -6
  67. package/dist/src/engine/erc20SubTypeProcessors/implementations/PendleProcessor.d.ts +1 -2
  68. package/dist/src/engine/erc20SubTypeProcessors/implementations/PendleProcessor.js +1 -1
  69. package/dist/src/engine/erc20SubTypeProcessors/implementations/PendleYTProcessor.d.ts +1 -2
  70. package/dist/src/engine/erc20SubTypeProcessors/implementations/PendleYTProcessor.js +1 -1
  71. package/dist/src/engine/erc20SubTypeProcessors/implementations/RadiantProcessor.d.ts +2 -2
  72. package/dist/src/engine/erc20SubTypeProcessors/implementations/RadiantProcessor.js +1 -2
  73. package/dist/src/engine/erc20SubTypeProcessors/implementations/RfxProcessor.d.ts +2 -2
  74. package/dist/src/engine/erc20SubTypeProcessors/implementations/RfxProcessor.js +5 -6
  75. package/dist/src/engine/erc20SubTypeProcessors/implementations/Satlayer.d.ts +1 -2
  76. package/dist/src/engine/erc20SubTypeProcessors/implementations/Satlayer.js +1 -2
  77. package/dist/src/engine/erc20SubTypeProcessors/implementations/SpectraProcessor.d.ts +1 -2
  78. package/dist/src/engine/erc20SubTypeProcessors/implementations/SpectraProcessor.js +1 -1
  79. package/dist/src/engine/erc20SubTypeProcessors/implementations/SpectraYTProcessor.d.ts +1 -2
  80. package/dist/src/engine/erc20SubTypeProcessors/implementations/SpectraYTProcessor.js +1 -1
  81. package/dist/src/engine/erc20SubTypeProcessors/implementations/SpliceProcessor.d.ts +2 -1
  82. package/dist/src/engine/erc20SubTypeProcessors/implementations/SpliceProcessor.js +0 -1
  83. package/dist/src/engine/erc20SubTypeProcessors/implementations/SturdySiloProcessor.d.ts +1 -2
  84. package/dist/src/engine/erc20SubTypeProcessors/implementations/SturdySiloProcessor.js +1 -2
  85. package/dist/src/engine/erc20SubTypeProcessors/implementations/TempestVaultProcessor.d.ts +2 -2
  86. package/dist/src/engine/erc20SubTypeProcessors/implementations/TempestVaultProcessor.js +2 -2
  87. package/dist/src/engine/erc20SubTypeProcessors/implementations/TemplateProcessor.d.ts +2 -3
  88. package/dist/src/engine/erc20SubTypeProcessors/implementations/TemplateProcessor.js +0 -4
  89. package/dist/src/engine/erc20SubTypeProcessors/implementations/TorosProcessor.d.ts +1 -2
  90. package/dist/src/engine/erc20SubTypeProcessors/implementations/TorosProcessor.js +1 -2
  91. package/dist/src/engine/erc20SubTypeProcessors/implementations/UniswapProcessor.d.ts +3 -2
  92. package/dist/src/engine/erc20SubTypeProcessors/implementations/UniswapProcessor.js +3 -3
  93. package/dist/src/engine/erc20SubTypeProcessors/implementations/VicunaProcessor.d.ts +1 -2
  94. package/dist/src/engine/erc20SubTypeProcessors/implementations/VicunaProcessor.js +1 -1
  95. package/dist/src/engine/erc20SubTypeProcessors/implementations/WoofiProcessor.d.ts +1 -2
  96. package/dist/src/engine/erc20SubTypeProcessors/implementations/WoofiProcessor.js +1 -2
  97. package/dist/src/engine/erc20SubTypeProcessors/implementations/ZkSwapThreePoolProcessor.d.ts +2 -2
  98. package/dist/src/engine/erc20SubTypeProcessors/implementations/ZkSwapThreePoolProcessor.js +7 -7
  99. package/dist/src/engine/erc20SubTypeProcessors/implementations/curveNPoolProcessor.d.ts +3 -2
  100. package/dist/src/engine/erc20SubTypeProcessors/implementations/curveNPoolProcessor.js +5 -6
  101. package/dist/src/engine/erc20SubTypeProcessors/implementations/curveProcessor.d.ts +1 -2
  102. package/dist/src/engine/erc20SubTypeProcessors/implementations/curveProcessor.js +2 -3
  103. package/dist/src/engine/erc20SubTypeProcessors/implementations/stakedCurveProcessor.d.ts +2 -2
  104. package/dist/src/engine/erc20SubTypeProcessors/implementations/stakedCurveProcessor.js +3 -4
  105. package/dist/src/engine/erc20SubTypeProcessors/implementations/xU308Processor.d.ts +2 -2
  106. package/dist/src/engine/erc20SubTypeProcessors/implementations/xU308Processor.js +3 -4
  107. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound1.d.ts +17 -3
  108. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound1.js +52 -62
  109. package/dist/src/engine/opportunityMetadata/implementations/JsonAirdrop.js +1 -1
  110. package/dist/src/index.d.ts +23 -12
  111. package/dist/src/jobs/update-rpc-calls-cache.js +9 -4
  112. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +23 -12
  113. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +23 -12
  114. package/dist/src/modules/v4/opportunity/opportunity.service.js +2 -1
  115. package/dist/src/modules/v4/router.d.ts +23 -12
  116. package/dist/src/utils/decodeCalls.d.ts +1 -1
  117. package/dist/src/utils/decodeCalls.js +1 -1
  118. package/dist/src/utils/encodeCalls.d.ts +2 -2
  119. package/dist/src/utils/encodeCalls.js +15 -15
  120. package/dist/src/utils/generateCardName.d.ts +4 -3
  121. package/dist/src/utils/generateCardName.js +3 -3
  122. package/dist/tsconfig.package.tsbuildinfo +1 -1
  123. package/package.json +1 -1
  124. package/dist/src/engine/erc20SubTypeProcessors/implementations/processorMapping.d.ts +0 -6
  125. package/dist/src/engine/erc20SubTypeProcessors/subtypesPrices.d.ts +0 -4
  126. package/dist/src/engine/erc20SubTypeProcessors/subtypesPrices.js +0 -24
  127. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound2.d.ts +0 -4
  128. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound2.js +0 -22
  129. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound3.d.ts +0 -3
  130. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound3.js +0 -22
  131. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound4.d.ts +0 -3
  132. package/dist/src/engine/erc20SubTypeProcessors/subtypesRound4.js +0 -22
  133. package/dist/src/utils/generateIcons.d.ts +0 -3
  134. package/dist/src/utils/generateIcons.js +0 -65
  135. /package/dist/src/engine/erc20SubTypeProcessors/{helpers/tokenType.js → constants.js} +0 -0
@@ -2,7 +2,11 @@ import { PrismaClient as ApiPrismaClient } from "@db/api";
2
2
  import { PrismaClient as EnginePrismaClient } from "@db/engine";
3
3
  import { drizzle } from "drizzle-orm/prisma/pg";
4
4
  export const apiDbClient = new ApiPrismaClient({
5
- datasources: { db: { url: `${process.env.DATABASE_API_URL}&connection_limit=100&pool_timeout=60` } },
5
+ datasources: {
6
+ db: {
7
+ url: `${process.env.DATABASE_API_URL}&connection_limit=${!!process.env.BACKOFFICE_SECRET ? "100" : "10"}&pool_timeout=60`,
8
+ },
9
+ },
6
10
  }).$extends(drizzle());
7
11
  export const engineDbClient = new EnginePrismaClient({
8
12
  datasources: {
@@ -140,20 +140,31 @@ declare const eden: {
140
140
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
141
141
  200: {
142
142
  id: string;
143
- name: string;
143
+ chainId: number;
144
144
  type: string;
145
- status: import("@db/api").$Enums.Status;
146
- tags: string[];
147
145
  identifier: string;
148
- action: import("@db/api").$Enums.OpportunityAction;
149
- manualOverrides: import("@db/api").$Enums.OpportunityManualOverride[];
150
- chainId: number;
151
- depositUrl: string | null;
152
- explorerAddress: string | null;
153
- mainProtocolId: string | null;
154
- tvl: number;
155
- apr: number;
156
- dailyRewards: number;
146
+ name: string;
147
+ status: "PAST" | "LIVE" | "SOON";
148
+ action: any;
149
+ tokens: ({
150
+ symbol: string;
151
+ id: string;
152
+ name: string | null;
153
+ icon: string;
154
+ address: string;
155
+ chainId: number;
156
+ decimals: number;
157
+ verified: boolean;
158
+ isTest: boolean;
159
+ isPoint: boolean;
160
+ isNative: boolean;
161
+ } & {
162
+ price?: number | null | undefined;
163
+ })[];
164
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
165
+ depositUrl: any;
166
+ explorerAddress: string | undefined;
167
+ tags: string[];
157
168
  };
158
169
  }>>;
159
170
  };
@@ -4144,20 +4155,31 @@ declare const eden: {
4144
4155
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
4145
4156
  200: {
4146
4157
  id: string;
4147
- name: string;
4158
+ chainId: number;
4148
4159
  type: string;
4149
- status: import("@db/api").$Enums.Status;
4150
- tags: string[];
4151
4160
  identifier: string;
4152
- action: import("@db/api").$Enums.OpportunityAction;
4153
- manualOverrides: import("@db/api").$Enums.OpportunityManualOverride[];
4154
- chainId: number;
4155
- depositUrl: string | null;
4156
- explorerAddress: string | null;
4157
- mainProtocolId: string | null;
4158
- tvl: number;
4159
- apr: number;
4160
- dailyRewards: number;
4161
+ name: string;
4162
+ status: "PAST" | "LIVE" | "SOON";
4163
+ action: any;
4164
+ tokens: ({
4165
+ symbol: string;
4166
+ id: string;
4167
+ name: string | null;
4168
+ icon: string;
4169
+ address: string;
4170
+ chainId: number;
4171
+ decimals: number;
4172
+ verified: boolean;
4173
+ isTest: boolean;
4174
+ isPoint: boolean;
4175
+ isNative: boolean;
4176
+ } & {
4177
+ price?: number | null | undefined;
4178
+ })[];
4179
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
4180
+ depositUrl: any;
4181
+ explorerAddress: string | undefined;
4182
+ tags: string[];
4161
4183
  };
4162
4184
  }>>;
4163
4185
  };
@@ -8984,20 +9006,31 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
8984
9006
  response: {
8985
9007
  200: {
8986
9008
  id: string;
8987
- name: string;
9009
+ chainId: number;
8988
9010
  type: string;
8989
- status: import("@db/api").$Enums.Status;
8990
- tags: string[];
8991
9011
  identifier: string;
8992
- action: import("@db/api").$Enums.OpportunityAction;
8993
- manualOverrides: import("@db/api").$Enums.OpportunityManualOverride[];
8994
- chainId: number;
8995
- depositUrl: string | null;
8996
- explorerAddress: string | null;
8997
- mainProtocolId: string | null;
8998
- tvl: number;
8999
- apr: number;
9000
- dailyRewards: number;
9012
+ name: string;
9013
+ status: "PAST" | "LIVE" | "SOON";
9014
+ action: any;
9015
+ tokens: ({
9016
+ symbol: string;
9017
+ id: string;
9018
+ name: string | null;
9019
+ icon: string;
9020
+ address: string;
9021
+ chainId: number;
9022
+ decimals: number;
9023
+ verified: boolean;
9024
+ isTest: boolean;
9025
+ isPoint: boolean;
9026
+ isNative: boolean;
9027
+ } & {
9028
+ price?: number | null | undefined;
9029
+ })[];
9030
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
9031
+ depositUrl: any;
9032
+ explorerAddress: string | undefined;
9033
+ tags: string[];
9001
9034
  };
9002
9035
  };
9003
9036
  };
@@ -14804,20 +14837,31 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
14804
14837
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
14805
14838
  200: {
14806
14839
  id: string;
14807
- name: string;
14840
+ chainId: number;
14808
14841
  type: string;
14809
- status: import("@db/api").$Enums.Status;
14810
- tags: string[];
14811
14842
  identifier: string;
14812
- action: import("@db/api").$Enums.OpportunityAction;
14813
- manualOverrides: import("@db/api").$Enums.OpportunityManualOverride[];
14814
- chainId: number;
14815
- depositUrl: string | null;
14816
- explorerAddress: string | null;
14817
- mainProtocolId: string | null;
14818
- tvl: number;
14819
- apr: number;
14820
- dailyRewards: number;
14843
+ name: string;
14844
+ status: "PAST" | "LIVE" | "SOON";
14845
+ action: any;
14846
+ tokens: ({
14847
+ symbol: string;
14848
+ id: string;
14849
+ name: string | null;
14850
+ icon: string;
14851
+ address: string;
14852
+ chainId: number;
14853
+ decimals: number;
14854
+ verified: boolean;
14855
+ isTest: boolean;
14856
+ isPoint: boolean;
14857
+ isNative: boolean;
14858
+ } & {
14859
+ price?: number | null | undefined;
14860
+ })[];
14861
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
14862
+ depositUrl: any;
14863
+ explorerAddress: string | undefined;
14864
+ tags: string[];
14821
14865
  };
14822
14866
  }>>;
14823
14867
  };
@@ -18808,20 +18852,31 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
18808
18852
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
18809
18853
  200: {
18810
18854
  id: string;
18811
- name: string;
18855
+ chainId: number;
18812
18856
  type: string;
18813
- status: import("@db/api").$Enums.Status;
18814
- tags: string[];
18815
18857
  identifier: string;
18816
- action: import("@db/api").$Enums.OpportunityAction;
18817
- manualOverrides: import("@db/api").$Enums.OpportunityManualOverride[];
18818
- chainId: number;
18819
- depositUrl: string | null;
18820
- explorerAddress: string | null;
18821
- mainProtocolId: string | null;
18822
- tvl: number;
18823
- apr: number;
18824
- dailyRewards: number;
18858
+ name: string;
18859
+ status: "PAST" | "LIVE" | "SOON";
18860
+ action: any;
18861
+ tokens: ({
18862
+ symbol: string;
18863
+ id: string;
18864
+ name: string | null;
18865
+ icon: string;
18866
+ address: string;
18867
+ chainId: number;
18868
+ decimals: number;
18869
+ verified: boolean;
18870
+ isTest: boolean;
18871
+ isPoint: boolean;
18872
+ isNative: boolean;
18873
+ } & {
18874
+ price?: number | null | undefined;
18875
+ })[];
18876
+ mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
18877
+ depositUrl: any;
18878
+ explorerAddress: string | undefined;
18879
+ tags: string[];
18825
18880
  };
18826
18881
  }>>;
18827
18882
  };
@@ -1,9 +1,6 @@
1
- import { tokenType } from "@/engine/erc20SubTypeProcessors/helpers/tokenType";
2
- import { getTokenPricesInfo } from "@/engine/erc20SubTypeProcessors/subtypesPrices";
1
+ import { tokenType } from "@/engine/erc20SubTypeProcessors/constants";
2
+ import { erc20ProcessorFactory } from "@/engine/erc20SubTypeProcessors/factory";
3
3
  import { getTokenTypeRound1 } from "@/engine/erc20SubTypeProcessors/subtypesRound1";
4
- import { getTokenTypeRound2 } from "@/engine/erc20SubTypeProcessors/subtypesRound2";
5
- import { getTokenTypeRound3 } from "@/engine/erc20SubTypeProcessors/subtypesRound3";
6
- import { getTokenTypeRound4 } from "@/engine/erc20SubTypeProcessors/subtypesRound4";
7
4
  import { ComputedValueService } from "@/modules/v4/computedValue";
8
5
  import { TokenRepository } from "@/modules/v4/token/token.repository";
9
6
  import { TokenService } from "@/modules/v4/token/token.service";
@@ -16,12 +13,13 @@ export class Erc20DynamicData {
16
13
  const pricer = await Pricer.load();
17
14
  // Round 1: Get the high level type for each token (will need to be refined lated with more calls)
18
15
  const callsRounds1 = [];
19
- const tokenTypesByCampaign = {};
16
+ const tokenTypeDataByCampaign = {};
20
17
  for (const campaign of campaigns) {
21
18
  const typeStruct = {
22
19
  type: tokenType.unknown,
23
20
  calls: [],
24
21
  typeInfo: {},
22
+ processor: erc20ProcessorFactory(tokenType.unknown, campaign),
25
23
  };
26
24
  const targetToken = campaign.campaignParameters.targetToken;
27
25
  typeStruct.calls = [
@@ -62,74 +60,114 @@ export class Erc20DynamicData {
62
60
  },
63
61
  ];
64
62
  callsRounds1.push(...typeStruct.calls);
65
- tokenTypesByCampaign[campaign.campaignId] = typeStruct;
63
+ tokenTypeDataByCampaign[campaign.campaignId] = typeStruct;
66
64
  }
67
- const resultRound1 = await ChainInteractionService(chainId).fetchState(callsRounds1);
65
+ const resultRound1 = (await ChainInteractionService(chainId).fetchState(callsRounds1)).map(x => x.returnData);
68
66
  // Round 2: Decode result from round 1 and get some additional info for the types before the final calls
69
67
  const callsRounds2 = [];
70
68
  let i = 0;
71
69
  for (const campaign of campaigns) {
72
- const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
73
- tokenTypesByCampaign[campaign.campaignId] = getTokenTypeRound1(resultRound1, campaign.campaignParameters.targetToken, i, campaign);
70
+ const tokenTypeData = tokenTypeDataByCampaign[campaign.campaignId];
71
+ const callsForCampaign = tokenTypeData.calls.length;
72
+ const res = getTokenTypeRound1(resultRound1, i, campaign); // TODO use processor
73
+ tokenTypeData.calls = res.calls;
74
+ tokenTypeData.typeInfo = res.typeInfo;
75
+ tokenTypeData.processor = erc20ProcessorFactory(res.type, campaign);
74
76
  i += callsForCampaign;
75
- callsRounds2.push(...tokenTypesByCampaign[campaign.campaignId].calls);
77
+ callsRounds2.push(...tokenTypeDataByCampaign[campaign.campaignId].calls);
76
78
  }
77
- const resultRound2 = await ChainInteractionService(chainId).fetchState(callsRounds2);
79
+ const resultRound2 = (await ChainInteractionService(chainId).fetchState(callsRounds2)).map(x => x.returnData);
78
80
  // Round 3: Decode result from round 2 and get some additional info for the types before the final calls
79
81
  const callsRounds3 = [];
80
82
  let j = 0;
81
83
  for (const campaign of campaigns) {
82
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
- const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
84
- tokenTypesByCampaign[campaign.campaignId] = getTokenTypeRound2(j, tokenTypesByCampaign[campaign.campaignId].type, tokenTypesByCampaign[campaign.campaignId].typeInfo, resultRound2, campaign);
84
+ const { processor, typeInfo } = tokenTypeDataByCampaign[campaign.campaignId];
85
+ const tokenTypeData = tokenTypeDataByCampaign[campaign.campaignId];
86
+ const callsForCampaign = tokenTypeData.calls.length;
87
+ try {
88
+ const res = await processor.computeRound2(j, processor.type, typeInfo, resultRound2, campaign);
89
+ tokenTypeData.calls = res.calls;
90
+ tokenTypeData.typeInfo = res.typeInfo;
91
+ }
92
+ catch {
93
+ // In case something goes wrong, we set following calls to void an move on
94
+ tokenTypeData.calls = [];
95
+ tokenTypeData.typeInfo = typeInfo;
96
+ }
85
97
  j += callsForCampaign;
86
- callsRounds3.push(...tokenTypesByCampaign[campaign.campaignId].calls);
98
+ callsRounds3.push(...tokenTypeDataByCampaign[campaign.campaignId].calls);
87
99
  }
88
- const resultRound3 = await ChainInteractionService(chainId).fetchState(callsRounds3);
100
+ const resultRound3 = (await ChainInteractionService(chainId).fetchState(callsRounds3)).map(x => x.returnData);
89
101
  // Final round before execute
90
- let callsFinal = [];
102
+ let callsRounds4 = [];
91
103
  j = 0;
92
104
  for (const campaign of campaigns) {
93
- const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
94
- tokenTypesByCampaign[campaign.campaignId] = getTokenTypeRound3(j, tokenTypesByCampaign[campaign.campaignId].type, tokenTypesByCampaign[campaign.campaignId].typeInfo, resultRound3);
105
+ const { processor, typeInfo } = tokenTypeDataByCampaign[campaign.campaignId];
106
+ const tokenTypeData = tokenTypeDataByCampaign[campaign.campaignId];
107
+ const callsForCampaign = tokenTypeData.calls.length;
108
+ try {
109
+ const res = await processor.computeRound3(j, processor.type, typeInfo, resultRound3);
110
+ tokenTypeData.calls = res.calls;
111
+ tokenTypeData.typeInfo = res.typeInfo;
112
+ }
113
+ catch {
114
+ // In case something goes wrong, we set following calls to void an move on
115
+ tokenTypeData.calls = [];
116
+ tokenTypeData.typeInfo = typeInfo;
117
+ }
95
118
  j += callsForCampaign;
96
- callsFinal = callsFinal.concat(tokenTypesByCampaign[campaign.campaignId].calls);
119
+ callsRounds4 = callsRounds4.concat(tokenTypeDataByCampaign[campaign.campaignId].calls);
97
120
  }
98
121
  // Round 4: Get the final data
99
- const resultsFinal = await ChainInteractionService(chainId).fetchState(callsFinal);
122
+ const resultRound4 = (await ChainInteractionService(chainId).fetchState(callsRounds4)).map(x => x.returnData);
100
123
  j = 0;
101
124
  let calls = [];
102
125
  for (const campaign of campaigns) {
103
- const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
104
- tokenTypesByCampaign[campaign.campaignId] = getTokenTypeRound4(j, tokenTypesByCampaign[campaign.campaignId].type, tokenTypesByCampaign[campaign.campaignId].typeInfo, resultsFinal, campaign);
126
+ const { processor, typeInfo } = tokenTypeDataByCampaign[campaign.campaignId];
127
+ const tokenTypeData = tokenTypeDataByCampaign[campaign.campaignId];
128
+ const callsForCampaign = tokenTypeData.calls.length;
129
+ try {
130
+ const res = await processor.computeRound4(j, processor.type, typeInfo, resultRound4, campaign);
131
+ tokenTypeData.calls = res.calls;
132
+ tokenTypeData.typeInfo = res.typeInfo;
133
+ }
134
+ catch {
135
+ // In case something goes wrong, we set following calls to void an move on
136
+ tokenTypeData.calls = [];
137
+ tokenTypeData.typeInfo = typeInfo;
138
+ }
105
139
  j += callsForCampaign;
106
- calls = calls.concat(tokenTypesByCampaign[campaign.campaignId].calls);
140
+ calls = calls.concat(tokenTypeDataByCampaign[campaign.campaignId].calls);
107
141
  }
108
- const result = await ChainInteractionService(chainId).fetchState(calls);
142
+ const resultFinal = (await ChainInteractionService(chainId).fetchState(calls)).map(x => x.returnData);
109
143
  i = 0;
110
144
  const dynamicData = [];
111
145
  for (const campaign of campaigns) {
112
- // const priceRewardToken =
113
- // (await pricer.get({
114
- // address: campaign.rewardToken,
115
- // chainId,
116
- // symbol: campaign.campaignParameters.symbolRewardToken,
117
- // })) ?? 0;
118
146
  const priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
119
- // Get the data from the final round and process it to get the price of the target token and some extra info
120
- const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
121
- tokenTypesByCampaign[campaign.campaignId] = await getTokenPricesInfo(i, tokenTypesByCampaign[campaign.campaignId].type, tokenTypesByCampaign[campaign.campaignId].typeInfo, result.map(r => r.returnData), campaign, pricer);
147
+ const { processor, typeInfo } = tokenTypeDataByCampaign[campaign.campaignId];
148
+ const tokenTypeData = tokenTypeDataByCampaign[campaign.campaignId];
149
+ const callsForCampaign = tokenTypeData.calls.length;
150
+ try {
151
+ const res = await processor.computeRound5(j, processor.type, typeInfo, resultFinal, campaign, pricer);
152
+ tokenTypeData.calls = res.calls;
153
+ tokenTypeData.typeInfo = res.typeInfo;
154
+ }
155
+ catch {
156
+ // In case something goes wrong, we set following calls to void an move on
157
+ tokenTypeData.calls = [];
158
+ tokenTypeData.typeInfo = typeInfo;
159
+ }
122
160
  try {
123
- if (!!tokenTypesByCampaign[campaign.campaignId]?.typeInfo.priceTargetToken && getEnv() === "prod")
124
- await TokenRepository.updateAddressPrices(campaign.campaignParameters.targetToken, tokenTypesByCampaign[campaign.campaignId]?.typeInfo.priceTargetToken);
161
+ if (!!tokenTypeDataByCampaign[campaign.campaignId]?.typeInfo.priceTargetToken && getEnv() === "prod")
162
+ await TokenRepository.updateAddressPrices(campaign.campaignParameters.targetToken, tokenTypeDataByCampaign[campaign.campaignId]?.typeInfo.priceTargetToken);
125
163
  }
126
164
  catch (e) {
127
165
  log.warn(`failed to update target token price: ${e}`);
128
166
  }
129
167
  i += callsForCampaign;
130
- let whitelistedSupplyTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.whitelistedSupplyTargetToken;
168
+ let whitelistedSupplyTargetToken = tokenTypeDataByCampaign[campaign.campaignId].typeInfo.whitelistedSupplyTargetToken;
131
169
  const totalSupplyTargetToken = whitelistedSupplyTargetToken;
132
- const priceTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.priceTargetToken;
170
+ const priceTargetToken = tokenTypeDataByCampaign[campaign.campaignId].typeInfo.priceTargetToken;
133
171
  let lastEligibilityRatio = 1;
134
172
  if (!!campaign.campaignParameters.hooks?.length) {
135
173
  lastEligibilityRatio =
@@ -165,15 +203,15 @@ export class Erc20DynamicData {
165
203
  apr = getFixedApr(campaign, priceRewardToken, priceTargetToken);
166
204
  }
167
205
  if (campaign.chainId === ChainId.ETHERLINK) {
168
- whitelistedSupplyTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.totalSupply;
206
+ whitelistedSupplyTargetToken = tokenTypeDataByCampaign[campaign.campaignId].typeInfo.totalSupply;
169
207
  }
170
208
  dynamicData.push({
171
209
  ...campaign,
172
210
  apr,
173
211
  totalSupplyTargetToken,
174
212
  tvl: whitelistedSupplyTargetToken * priceTargetToken,
175
- type: tokenTypesByCampaign[campaign.campaignId].type,
176
- typeInfo: tokenTypesByCampaign[campaign.campaignId].typeInfo,
213
+ type: processor.type,
214
+ typeInfo,
177
215
  priceRewardToken: priceRewardToken,
178
216
  lastEligibilityRatio,
179
217
  });
@@ -1,7 +1,8 @@
1
1
  import type { Pricer } from "@/utils/pricer";
2
- import { type CallDto, type Campaign, type CampaignParameters } from "@sdk";
2
+ import { type CallDto, type CampaignParameters } from "@sdk";
3
3
  import type { ERC20SupportedCampaignType } from "../dynamicData/implementations/Erc20";
4
- import { type tokenType, type tokenTypeStruct } from "./helpers/tokenType";
4
+ import { type tokenType } from "./constants";
5
+ import type { tokenTypeStruct } from "./interface";
5
6
  export declare enum Round {
6
7
  one = "round1",
7
8
  two = "round2",
@@ -9,14 +10,13 @@ export declare enum Round {
9
10
  four = "round4"
10
11
  }
11
12
  export type callType = {
12
- key: any;
13
- call: any;
14
- target: any;
15
- metaData?: any;
13
+ key: string;
14
+ call: string;
15
+ target: string;
16
+ callArgs?: string;
16
17
  optional?: boolean;
17
18
  };
18
19
  export type mandatoryCallKeys = {
19
- type: tokenType;
20
20
  protocol: string;
21
21
  tokenAddress: string;
22
22
  blacklistedSupply: string;
@@ -28,11 +28,8 @@ export type stakingKeys = {
28
28
  eip712DomainName: string;
29
29
  stakingName: string;
30
30
  stakingSymbol: string;
31
- isStaking: string;
32
- };
33
- export type callKeys = mandatoryCallKeys & {
34
- [key: string]: string;
35
31
  };
32
+ export type callKeys = mandatoryCallKeys & Record<string, string>;
36
33
  export type dataRaw = {
37
34
  protocol: string;
38
35
  tokenAddress: string;
@@ -42,7 +39,6 @@ export type dataRaw = {
42
39
  } & stakingKeys;
43
40
  export type dataType = {
44
41
  protocol: string;
45
- type: tokenType;
46
42
  tokenAddress: string;
47
43
  totalSupply: number;
48
44
  blacklistedSupply: number;
@@ -63,6 +59,11 @@ export type dataType = {
63
59
  * @params Output - Final output of the processor
64
60
  */
65
61
  export declare class GenericProcessor<Input extends callKeys, DataRaw extends dataRaw, Output extends dataType> {
62
+ debug: boolean;
63
+ type: tokenType;
64
+ isStaking: boolean;
65
+ campaign: CampaignParameters<ERC20SupportedCampaignType>;
66
+ constructor(type: tokenType, campaign: CampaignParameters<ERC20SupportedCampaignType>, debug?: boolean);
66
67
  rounds: {
67
68
  round1: callType[];
68
69
  round2: callType[];
@@ -75,24 +76,23 @@ export declare class GenericProcessor<Input extends callKeys, DataRaw extends da
75
76
  round3: callType[];
76
77
  round4: callType[];
77
78
  };
78
- debug: boolean;
79
79
  processingRound1(_typeInfo: DataRaw): void;
80
80
  processingRound2(_typeInfo: DataRaw, _campaign?: CampaignParameters<ERC20SupportedCampaignType>): void;
81
81
  processingRound3(_typeInfo: DataRaw): void;
82
82
  processingRound4(_typeInfo: DataRaw): void;
83
- handleWhiteListBlacklistRound5(typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.ERC20LOGPROCESSOR> | CampaignParameters<Campaign.ERC20REBASELOGPROCESSOR> | CampaignParameters<Campaign.EULER>): {
83
+ handleWhiteListBlacklistRound5(typeInfo: DataRaw, campaign: CampaignParameters<ERC20SupportedCampaignType>): {
84
84
  whitelistedSupplyTargetToken: any;
85
85
  totalSupply: any;
86
86
  blacklistedSupply: any;
87
87
  };
88
- processingRound5(_index: number, type: tokenType, typeInfo: DataRaw, _calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.ERC20LOGPROCESSOR> | CampaignParameters<Campaign.ERC20REBASELOGPROCESSOR> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<Output>;
89
- computeRound1(type: tokenType, typeInfo: DataRaw): tokenTypeStruct;
88
+ processingRound5(_index: number, type: tokenType, typeInfo: DataRaw, _calls: string[], campaign: CampaignParameters<ERC20SupportedCampaignType>, pricer: Pricer): Promise<Output>;
89
+ computeRound1(typeInfo: DataRaw): tokenTypeStruct;
90
90
  computeRound2(index: number, type: tokenType, typeInfo: DataRaw, calls: string[], campaign?: CampaignParameters<ERC20SupportedCampaignType>): tokenTypeStruct;
91
91
  computeRound3(index: number, type: tokenType, typeInfo: DataRaw, calls: string[]): tokenTypeStruct;
92
92
  computeRound4(index: number, type: tokenType, typeInfo: DataRaw, calls: string[], campaign: CampaignParameters<ERC20SupportedCampaignType>): tokenTypeStruct;
93
93
  computeRound5(index: number, type: tokenType, typeInfo: DataRaw, calls: string[], campaign: CampaignParameters<ERC20SupportedCampaignType>, pricer: Pricer): Promise<tokenTypeStruct>;
94
- generateWhitelistCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.ERC20LOGPROCESSOR> | CampaignParameters<Campaign.ERC20REBASELOGPROCESSOR> | CampaignParameters<Campaign.EULER>): CallDto[];
95
- generateBlackListCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.ERC20LOGPROCESSOR> | CampaignParameters<Campaign.ERC20REBASELOGPROCESSOR> | CampaignParameters<Campaign.EULER>): CallDto[];
94
+ generateWhitelistCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<ERC20SupportedCampaignType>): CallDto[];
95
+ generateBlackListCall(type: tokenType, typeInfo: DataRaw, campaign: CampaignParameters<ERC20SupportedCampaignType>): CallDto[];
96
96
  decodeListedSupply(index: number, list: string[], calls: string[]): string;
97
97
  decodeRound(round: callType[], index: number, calls: string[], type: tokenType, data: DataRaw): void;
98
98
  decodePreviousRound(round: Round, calls: string[], data: DataRaw, type: tokenType, index: number): void;