@merkl/api 0.10.343 → 0.10.345

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.
@@ -125,7 +125,7 @@ declare const eden: {
125
125
  } & {
126
126
  price?: number | null | undefined;
127
127
  })[];
128
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
128
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
129
129
  depositUrl: any;
130
130
  tags: string[];
131
131
  };
@@ -2544,6 +2544,16 @@ declare const eden: {
2544
2544
  boost: string;
2545
2545
  }[];
2546
2546
  }>>;
2547
+ get: (options?: {
2548
+ headers?: Record<string, unknown> | undefined;
2549
+ query?: Record<string, unknown> | undefined;
2550
+ fetch?: RequestInit | undefined;
2551
+ } | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
2552
+ 200: {
2553
+ address: string;
2554
+ boost: string;
2555
+ }[];
2556
+ }>>;
2547
2557
  };
2548
2558
  };
2549
2559
  };
@@ -2602,8 +2612,8 @@ declare const eden: {
2602
2612
  query: {
2603
2613
  types?: string | number | string[] | number[] | undefined;
2604
2614
  chainIds?: string | string[] | undefined;
2605
- creatorTag?: string | undefined;
2606
2615
  live?: boolean | undefined;
2616
+ creatorTag?: string | undefined;
2607
2617
  hideTestTokens?: string | undefined;
2608
2618
  };
2609
2619
  fetch?: RequestInit | undefined;
@@ -3352,7 +3362,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
3352
3362
  } & {
3353
3363
  price?: number | null | undefined;
3354
3364
  })[];
3355
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
3365
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
3356
3366
  depositUrl: any;
3357
3367
  tags: string[];
3358
3368
  };
@@ -6288,6 +6298,23 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6288
6298
  };
6289
6299
  };
6290
6300
  };
6301
+ } & {
6302
+ boosts: {
6303
+ euler: {
6304
+ get: {
6305
+ body: unknown;
6306
+ params: {};
6307
+ query: unknown;
6308
+ headers: unknown;
6309
+ response: {
6310
+ 200: {
6311
+ address: string;
6312
+ boost: string;
6313
+ }[];
6314
+ };
6315
+ };
6316
+ };
6317
+ };
6291
6318
  };
6292
6319
  } & {
6293
6320
  v3: {
@@ -6366,8 +6393,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6366
6393
  query: {
6367
6394
  types?: string | number | string[] | number[] | undefined;
6368
6395
  chainIds?: string | string[] | undefined;
6369
- creatorTag?: string | undefined;
6370
6396
  live?: boolean | undefined;
6397
+ creatorTag?: string | undefined;
6371
6398
  hideTestTokens?: string | undefined;
6372
6399
  };
6373
6400
  headers: unknown;
@@ -7174,7 +7201,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
7174
7201
  } & {
7175
7202
  price?: number | null | undefined;
7176
7203
  })[];
7177
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
7204
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
7178
7205
  depositUrl: any;
7179
7206
  tags: string[];
7180
7207
  };
@@ -9593,6 +9620,16 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
9593
9620
  boost: string;
9594
9621
  }[];
9595
9622
  }>>;
9623
+ get: (options?: {
9624
+ headers?: Record<string, unknown> | undefined;
9625
+ query?: Record<string, unknown> | undefined;
9626
+ fetch?: RequestInit | undefined;
9627
+ } | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
9628
+ 200: {
9629
+ address: string;
9630
+ boost: string;
9631
+ }[];
9632
+ }>>;
9596
9633
  };
9597
9634
  };
9598
9635
  };
@@ -9651,8 +9688,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
9651
9688
  query: {
9652
9689
  types?: string | number | string[] | number[] | undefined;
9653
9690
  chainIds?: string | string[] | undefined;
9654
- creatorTag?: string | undefined;
9655
9691
  live?: boolean | undefined;
9692
+ creatorTag?: string | undefined;
9656
9693
  hideTestTokens?: string | undefined;
9657
9694
  };
9658
9695
  fetch?: RequestInit | undefined;
@@ -221,7 +221,7 @@ declare const app: Elysia<"", false, {
221
221
  } & {
222
222
  price?: number | null | undefined;
223
223
  })[];
224
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
224
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
225
225
  depositUrl: any;
226
226
  tags: string[];
227
227
  };
@@ -3157,6 +3157,23 @@ declare const app: Elysia<"", false, {
3157
3157
  };
3158
3158
  };
3159
3159
  };
3160
+ } & {
3161
+ boosts: {
3162
+ euler: {
3163
+ get: {
3164
+ body: unknown;
3165
+ params: {};
3166
+ query: unknown;
3167
+ headers: unknown;
3168
+ response: {
3169
+ 200: {
3170
+ address: string;
3171
+ boost: string;
3172
+ }[];
3173
+ };
3174
+ };
3175
+ };
3176
+ };
3160
3177
  };
3161
3178
  } & {
3162
3179
  v3: {
@@ -3235,8 +3252,8 @@ declare const app: Elysia<"", false, {
3235
3252
  query: {
3236
3253
  types?: string | number | string[] | number[] | undefined;
3237
3254
  chainIds?: string | string[] | undefined;
3238
- creatorTag?: string | undefined;
3239
3255
  live?: boolean | undefined;
3256
+ creatorTag?: string | undefined;
3240
3257
  hideTestTokens?: string | undefined;
3241
3258
  };
3242
3259
  headers: unknown;
@@ -1,6 +1,5 @@
1
- import { engineDbClient } from "../../utils/prisma";
1
+ import { UserService } from "../../modules/v4/user";
2
2
  import { Campaign } from "@sdk";
3
- import { getAddress } from "ethers/lib/utils";
4
3
  import { AjnaDynamicData } from "./campaignTypes/AjnaDynamicData";
5
4
  import { BadgerDynamicData } from "./campaignTypes/BadgerDynamicData";
6
5
  import { CLAMMDynamicData } from "./campaignTypes/CLAMMDynamicData";
@@ -17,12 +16,9 @@ import { SILODynamicData } from "./campaignTypes/SILODynamicData";
17
16
  import { VestDynamicData } from "./campaignTypes/VestDynamicData";
18
17
  export async function campaignsDynamicData(chainId, campaigns, type) {
19
18
  try {
20
- const tags = (await engineDbClient.campaignCreators.findMany()).reduce((acc, curr) => {
21
- acc[getAddress(curr.address)] = curr.tags.split(",");
22
- return acc;
23
- }, {});
24
19
  for (const campaign of campaigns) {
25
- campaign.tags = tags[getAddress(campaign.creator)] || [];
20
+ const tags = (await UserService.findUnique(campaign.creator))?.tags;
21
+ campaign.tags = tags || [];
26
22
  }
27
23
  }
28
24
  catch (_err) { }
@@ -1,9 +1,8 @@
1
1
  import { log } from "../../../utils/logger";
2
- import { providers } from "../../../utils/providers";
3
- import { getContractCreationBlock } from "@sdk";
2
+ import { ChainId, ChainInteractionService, getContractCreationBlock } from "@sdk";
4
3
  import axios from "axios";
5
4
  async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
6
- const url = providers[chainId].connection.url;
5
+ const url = ChainInteractionService(chainId).provider().connection.url;
7
6
  if (fromBlock === undefined || fromBlock === null || !toBlock || fromBlock > toBlock) {
8
7
  throw new Error(`fromBlock and toBlock are required and fromBlock must be less than toBlock - fromBlock: ${fromBlock} - toBlock:${toBlock}`);
9
8
  }
@@ -12,7 +11,7 @@ async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
12
11
  let contractCreationBlock = toBlock;
13
12
  for (const address of addresses) {
14
13
  try {
15
- const aux = await getContractCreationBlock(address, providers[chainId]);
14
+ const aux = await getContractCreationBlock(address, ChainInteractionService(chainId).provider());
16
15
  if (aux < contractCreationBlock) {
17
16
  contractCreationBlock = aux;
18
17
  }
@@ -34,8 +33,10 @@ async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
34
33
  let step = tempToBlock - tempFromBlock;
35
34
  // Binary search to fetch logs and avoid errors
36
35
  let logs = [];
36
+ // Binary search to fetch logs and avoid errors
37
37
  let isRateLimitingError = false;
38
- // let stepLimited = false;
38
+ let stepLimited = false;
39
+ const maxLogsPerRequest = 10_000;
39
40
  while (true) {
40
41
  try {
41
42
  const data = {
@@ -62,6 +63,15 @@ async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
62
63
  if (res.data.error?.code === 413) {
63
64
  throw new Error("Request entity too large");
64
65
  }
66
+ if (res.data.error?.code === -32000 && chainId === ChainId.AVALANCHE) {
67
+ stepLimited = true;
68
+ step = 2047 * 2;
69
+ throw new Error("Block width exceeded");
70
+ }
71
+ if (res.data.error?.code === -32000 && chainId === ChainId.BSC) {
72
+ // Reall error is: " block not found x"
73
+ throw new Error("Log size exceeded");
74
+ }
65
75
  // Check if we hit the maximum log limit for a single call
66
76
  if (res.data.result?.length === 10000)
67
77
  throw new Error("Log size exceeded");
@@ -69,10 +79,35 @@ async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
69
79
  logs = logs.concat(...logsBatch);
70
80
  const batchSize = logsBatch.length;
71
81
  const blockRange = tempToBlock - tempFromBlock + 1;
82
+ if (!stepLimited) {
83
+ if (batchSize === 0) {
84
+ // Add safeguard for 0 logs case
85
+ // If no logs found, increase step size
86
+ step = Math.floor(step * 2);
87
+ }
88
+ else {
89
+ // Aggressive adjustment based on how far we are from optimal logs per request
90
+ const optimalLogsPerRequest = maxLogsPerRequest * 0.7; // Target 70% of max logs per request
91
+ const logsPerRequestRatio = batchSize / optimalLogsPerRequest;
92
+ if (batchSize < maxLogsPerRequest * 0.8) {
93
+ // More aggressive adjustment when far from target
94
+ const adjustmentFactor = (1 / logsPerRequestRatio) ** 0.7; // Non-linear scaling
95
+ step = Math.floor(step * adjustmentFactor);
96
+ // Allow for larger jumps when log density is very low
97
+ if (logsPerRequestRatio < 0.2) {
98
+ step = Math.floor(step * 2);
99
+ }
100
+ }
101
+ else {
102
+ // Quick reduction when close to limit
103
+ step = Math.floor(step * 0.4);
104
+ }
105
+ }
106
+ }
72
107
  log.local(`fetched ${batchSize} logs between blocks ${tempFromBlock} and ${tempToBlock} (block range: ${blockRange})`);
73
108
  }
74
109
  catch (e) {
75
- if (e instanceof Error && e.toString() === "Error: Request failed with status code 429") {
110
+ if (e.toString() === "Error: Request failed with status code 429") {
76
111
  isRateLimitingError = true;
77
112
  }
78
113
  if (isRateLimitingError) {
@@ -97,7 +132,7 @@ async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
97
132
  isRateLimitingError = false;
98
133
  }
99
134
  if (step === 0) {
100
- log.error("❌ fetchLogs", `error fetching logs for ${addresses}`);
135
+ log.error("❌ fetchLogs", `error fetching logs for ${addresses} on ${ChainId[chainId]}`);
101
136
  return { logs, block: tempFromBlock };
102
137
  }
103
138
  tempToBlock = tempFromBlock + step;
@@ -16,7 +16,7 @@ async function getCompoundV2ForksVaults() {
16
16
  if ([ChainId.LINEA].includes(chainId)) {
17
17
  continue;
18
18
  }
19
- log.local(`Fetching Compound V2 vaults for chainId ${ChainId[chainId]} and compFork ${CompFork[compFork]}`);
19
+ log.local(`Fetching Compound V2 vaults on ${ChainId[chainId]}, for ${CompFork[compFork]}`);
20
20
  const toBlock = await providers[chainId].getBlockNumber();
21
21
  const comptrollerAddress = Comptrollers[compFork][chainId];
22
22
  if (!comptrollerAddress) {
@@ -24,7 +24,9 @@ async function getCompoundV2ForksVaults() {
24
24
  }
25
25
  const creationBlock = (await getContractCreationBlock(comptrollerAddress, providers[chainId])) ?? 0;
26
26
  let logs = [];
27
- const topic = compFork === CompFork.Venus ? MARKET_SUPPORTED_EVENT_HASH : MARKET_LISTED_EVENT_HASH;
27
+ const topic = compFork === CompFork.Venus && chainId === ChainId.ZKSYNC
28
+ ? MARKET_SUPPORTED_EVENT_HASH
29
+ : MARKET_LISTED_EVENT_HASH;
28
30
  logs = await safeFetchLogs(chainId, [topic], [comptrollerAddress], creationBlock, toBlock);
29
31
  if (compFork === CompFork.Ionic && chainId === ChainId.MODE) {
30
32
  const isolatedIonicMarketUnitroller = "0x8Fb3D4a94D0aA5D6EDaAC3Ed82B59a27f56d923a";
@@ -33,9 +35,11 @@ async function getCompoundV2ForksVaults() {
33
35
  logs = logs.concat(isolatedMarketLogs);
34
36
  }
35
37
  const vaults = Object.keys(logs.reduce((acc, transfer) => {
36
- const [cToken] = defaultAbiCoder.decode(["address"], transfer.data);
37
- if (!!cToken) {
38
- acc[cToken] = true;
38
+ if (transfer.data !== "0x") {
39
+ const [cToken] = defaultAbiCoder.decode(["address"], transfer.data);
40
+ if (!!cToken) {
41
+ acc[cToken] = true;
42
+ }
39
43
  }
40
44
  return acc;
41
45
  }, {}));
@@ -33,6 +33,23 @@ export declare const BoostController: Elysia<"/boosts", false, {
33
33
  };
34
34
  };
35
35
  };
36
+ } & {
37
+ boosts: {
38
+ euler: {
39
+ get: {
40
+ body: unknown;
41
+ params: {};
42
+ query: unknown;
43
+ headers: unknown;
44
+ response: {
45
+ 200: {
46
+ address: string;
47
+ boost: string;
48
+ }[];
49
+ };
50
+ };
51
+ };
52
+ };
36
53
  }, {
37
54
  derive: {};
38
55
  resolve: {};
@@ -3,7 +3,8 @@ import { getEulerBoostBody } from "./boost.model";
3
3
  import { BoostService } from "./boost.service";
4
4
  export const BoostController = new Elysia({ prefix: "/boosts", detail: { tags: ["Boosts"], hide: true } })
5
5
  // ─── Get Euler Boost ─────────────────────────────────────────────────
6
- .post("/euler", async ({ body }) => await BoostService.getEulerBoost(), {
6
+ .post("/euler", async ({ body }) => BoostService.getEulerBoost(), {
7
7
  body: getEulerBoostBody,
8
8
  detail: { hide: true },
9
- });
9
+ })
10
+ .get("/euler", async () => BoostService.getEulerBoost());
@@ -90,7 +90,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
90
90
  } & {
91
91
  price?: number | null | undefined;
92
92
  })[];
93
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
93
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
94
94
  depositUrl: any;
95
95
  tags: string[];
96
96
  };
@@ -47,7 +47,7 @@ export declare abstract class OpportunityService {
47
47
  } & {
48
48
  price?: number | null | undefined;
49
49
  })[];
50
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
50
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
51
51
  depositUrl: any;
52
52
  tags: string[];
53
53
  }>;
@@ -75,7 +75,7 @@ export declare abstract class OpportunityService {
75
75
  } & {
76
76
  price?: number | null | undefined;
77
77
  })[];
78
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
78
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
79
79
  depositUrl: any;
80
80
  tags: string[];
81
81
  }>;
@@ -99,7 +99,7 @@ export declare const v4: Elysia<"/v4", false, {
99
99
  } & {
100
100
  price?: number | null | undefined;
101
101
  })[];
102
- mainProtocol: "morpho" | "aura" | "poolside" | "gearbox" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fenix" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "akron" | "dragonswap" | "koi" | "baseswap" | "zkswap" | "rfx" | "woofi" | "zkSwapThreePool" | "venus" | "reactor_fusion" | "curveNPool" | "balancer" | "aave" | "zerolend" | "arthswap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "supswap-v3" | "thirdtrade" | "uniswap-v2" | "cross_curve" | "syncswap-v3" | "neptune" | "radiant" | "euler" | "sturdy" | "frax" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | undefined;
102
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
103
103
  depositUrl: any;
104
104
  tags: string[];
105
105
  };
@@ -3035,6 +3035,23 @@ export declare const v4: Elysia<"/v4", false, {
3035
3035
  };
3036
3036
  };
3037
3037
  };
3038
+ } & {
3039
+ boosts: {
3040
+ euler: {
3041
+ get: {
3042
+ body: unknown;
3043
+ params: {};
3044
+ query: unknown;
3045
+ headers: unknown;
3046
+ response: {
3047
+ 200: {
3048
+ address: string;
3049
+ boost: string;
3050
+ }[];
3051
+ };
3052
+ };
3053
+ };
3054
+ };
3038
3055
  };
3039
3056
  }, {
3040
3057
  derive: {};
@@ -27,8 +27,8 @@ declare const _default: (app: Elysia) => Elysia<"", false, {
27
27
  query: {
28
28
  types?: string | number | string[] | number[] | undefined;
29
29
  chainIds?: string | string[] | undefined;
30
- creatorTag?: string | undefined;
31
30
  live?: boolean | undefined;
31
+ creatorTag?: string | undefined;
32
32
  hideTestTokens?: string | undefined;
33
33
  };
34
34
  headers: unknown;
@@ -88,8 +88,8 @@ export declare const v3: Elysia<"/v3", false, {
88
88
  query: {
89
89
  types?: string | number | string[] | number[] | undefined;
90
90
  chainIds?: string | string[] | undefined;
91
- creatorTag?: string | undefined;
92
91
  live?: boolean | undefined;
92
+ creatorTag?: string | undefined;
93
93
  hideTestTokens?: string | undefined;
94
94
  };
95
95
  headers: unknown;