@merkl/api 0.10.342 → 0.10.344
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.
- package/dist/src/eden/index.d.ts +122 -6
- package/dist/src/index.d.ts +50 -2
- package/dist/src/libs/campaigns/campaignsDynamicData.js +3 -7
- package/dist/src/modules/v4/boost/boost.controller.d.ts +17 -0
- package/dist/src/modules/v4/boost/boost.controller.js +3 -2
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +1 -1
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +2 -2
- package/dist/src/modules/v4/router.d.ts +49 -1
- package/dist/src/modules/v4/token/token.controller.d.ts +31 -0
- package/dist/src/modules/v4/token/token.controller.js +6 -0
- package/dist/src/modules/v4/token/token.repository.d.ts +13 -0
- package/dist/src/modules/v4/token/token.repository.js +11 -0
- package/dist/src/modules/v4/token/token.service.d.ts +14 -0
- package/dist/src/modules/v4/token/token.service.js +17 -2
- package/dist/src/routes/v3/campaigns.d.ts +1 -1
- package/dist/src/routes/v3/router.d.ts +1 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/eden/index.d.ts
CHANGED
@@ -125,7 +125,7 @@ declare const eden: {
|
|
125
125
|
} & {
|
126
126
|
price?: number | null | undefined;
|
127
127
|
})[];
|
128
|
-
mainProtocol: "morpho" | "
|
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
|
};
|
@@ -1022,6 +1022,30 @@ declare const eden: {
|
|
1022
1022
|
};
|
1023
1023
|
}>>;
|
1024
1024
|
}) & {
|
1025
|
+
reward: ((params: {
|
1026
|
+
chainId: string | number;
|
1027
|
+
}) => {
|
1028
|
+
get: (options?: {
|
1029
|
+
headers?: Record<string, unknown> | undefined;
|
1030
|
+
query?: Record<string, unknown> | undefined;
|
1031
|
+
fetch?: RequestInit | undefined;
|
1032
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
1033
|
+
200: {
|
1034
|
+
minimumAmountPerHour: any;
|
1035
|
+
symbol: string;
|
1036
|
+
name: string | null;
|
1037
|
+
id: string;
|
1038
|
+
icon: string;
|
1039
|
+
chainId: number;
|
1040
|
+
address: string;
|
1041
|
+
decimals: number;
|
1042
|
+
displaySymbol: string;
|
1043
|
+
verified: boolean;
|
1044
|
+
isTest: boolean;
|
1045
|
+
price: number | null;
|
1046
|
+
}[];
|
1047
|
+
}>>;
|
1048
|
+
}) & {};
|
1025
1049
|
balances: {
|
1026
1050
|
get: (options: {
|
1027
1051
|
headers?: Record<string, unknown> | undefined;
|
@@ -2520,6 +2544,16 @@ declare const eden: {
|
|
2520
2544
|
boost: string;
|
2521
2545
|
}[];
|
2522
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
|
+
}>>;
|
2523
2557
|
};
|
2524
2558
|
};
|
2525
2559
|
};
|
@@ -2578,8 +2612,8 @@ declare const eden: {
|
|
2578
2612
|
query: {
|
2579
2613
|
types?: string | number | string[] | number[] | undefined;
|
2580
2614
|
chainIds?: string | string[] | undefined;
|
2581
|
-
creatorTag?: string | undefined;
|
2582
2615
|
live?: boolean | undefined;
|
2616
|
+
creatorTag?: string | undefined;
|
2583
2617
|
hideTestTokens?: string | undefined;
|
2584
2618
|
};
|
2585
2619
|
fetch?: RequestInit | undefined;
|
@@ -3328,7 +3362,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
3328
3362
|
} & {
|
3329
3363
|
price?: number | null | undefined;
|
3330
3364
|
})[];
|
3331
|
-
mainProtocol: "morpho" | "
|
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;
|
3332
3366
|
depositUrl: any;
|
3333
3367
|
tags: string[];
|
3334
3368
|
};
|
@@ -4295,6 +4329,37 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
4295
4329
|
};
|
4296
4330
|
};
|
4297
4331
|
};
|
4332
|
+
} & {
|
4333
|
+
tokens: {
|
4334
|
+
reward: {
|
4335
|
+
":chainId": {
|
4336
|
+
get: {
|
4337
|
+
body: unknown;
|
4338
|
+
params: {
|
4339
|
+
chainId: number;
|
4340
|
+
};
|
4341
|
+
query: unknown;
|
4342
|
+
headers: unknown;
|
4343
|
+
response: {
|
4344
|
+
200: {
|
4345
|
+
minimumAmountPerHour: any;
|
4346
|
+
symbol: string;
|
4347
|
+
name: string | null;
|
4348
|
+
id: string;
|
4349
|
+
icon: string;
|
4350
|
+
chainId: number;
|
4351
|
+
address: string;
|
4352
|
+
decimals: number;
|
4353
|
+
displaySymbol: string;
|
4354
|
+
verified: boolean;
|
4355
|
+
isTest: boolean;
|
4356
|
+
price: number | null;
|
4357
|
+
}[];
|
4358
|
+
};
|
4359
|
+
};
|
4360
|
+
};
|
4361
|
+
};
|
4362
|
+
};
|
4298
4363
|
} & {
|
4299
4364
|
tokens: {
|
4300
4365
|
balances: {
|
@@ -6233,6 +6298,23 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
6233
6298
|
};
|
6234
6299
|
};
|
6235
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
|
+
};
|
6236
6318
|
};
|
6237
6319
|
} & {
|
6238
6320
|
v3: {
|
@@ -6311,8 +6393,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
6311
6393
|
query: {
|
6312
6394
|
types?: string | number | string[] | number[] | undefined;
|
6313
6395
|
chainIds?: string | string[] | undefined;
|
6314
|
-
creatorTag?: string | undefined;
|
6315
6396
|
live?: boolean | undefined;
|
6397
|
+
creatorTag?: string | undefined;
|
6316
6398
|
hideTestTokens?: string | undefined;
|
6317
6399
|
};
|
6318
6400
|
headers: unknown;
|
@@ -7119,7 +7201,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
7119
7201
|
} & {
|
7120
7202
|
price?: number | null | undefined;
|
7121
7203
|
})[];
|
7122
|
-
mainProtocol: "morpho" | "
|
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;
|
7123
7205
|
depositUrl: any;
|
7124
7206
|
tags: string[];
|
7125
7207
|
};
|
@@ -8016,6 +8098,30 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
8016
8098
|
};
|
8017
8099
|
}>>;
|
8018
8100
|
}) & {
|
8101
|
+
reward: ((params: {
|
8102
|
+
chainId: string | number;
|
8103
|
+
}) => {
|
8104
|
+
get: (options?: {
|
8105
|
+
headers?: Record<string, unknown> | undefined;
|
8106
|
+
query?: Record<string, unknown> | undefined;
|
8107
|
+
fetch?: RequestInit | undefined;
|
8108
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
8109
|
+
200: {
|
8110
|
+
minimumAmountPerHour: any;
|
8111
|
+
symbol: string;
|
8112
|
+
name: string | null;
|
8113
|
+
id: string;
|
8114
|
+
icon: string;
|
8115
|
+
chainId: number;
|
8116
|
+
address: string;
|
8117
|
+
decimals: number;
|
8118
|
+
displaySymbol: string;
|
8119
|
+
verified: boolean;
|
8120
|
+
isTest: boolean;
|
8121
|
+
price: number | null;
|
8122
|
+
}[];
|
8123
|
+
}>>;
|
8124
|
+
}) & {};
|
8019
8125
|
balances: {
|
8020
8126
|
get: (options: {
|
8021
8127
|
headers?: Record<string, unknown> | undefined;
|
@@ -9514,6 +9620,16 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
9514
9620
|
boost: string;
|
9515
9621
|
}[];
|
9516
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
|
+
}>>;
|
9517
9633
|
};
|
9518
9634
|
};
|
9519
9635
|
};
|
@@ -9572,8 +9688,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
9572
9688
|
query: {
|
9573
9689
|
types?: string | number | string[] | number[] | undefined;
|
9574
9690
|
chainIds?: string | string[] | undefined;
|
9575
|
-
creatorTag?: string | undefined;
|
9576
9691
|
live?: boolean | undefined;
|
9692
|
+
creatorTag?: string | undefined;
|
9577
9693
|
hideTestTokens?: string | undefined;
|
9578
9694
|
};
|
9579
9695
|
fetch?: RequestInit | undefined;
|
package/dist/src/index.d.ts
CHANGED
@@ -221,7 +221,7 @@ declare const app: Elysia<"", false, {
|
|
221
221
|
} & {
|
222
222
|
price?: number | null | undefined;
|
223
223
|
})[];
|
224
|
-
mainProtocol: "morpho" | "
|
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
|
};
|
@@ -1188,6 +1188,37 @@ declare const app: Elysia<"", false, {
|
|
1188
1188
|
};
|
1189
1189
|
};
|
1190
1190
|
};
|
1191
|
+
} & {
|
1192
|
+
tokens: {
|
1193
|
+
reward: {
|
1194
|
+
":chainId": {
|
1195
|
+
get: {
|
1196
|
+
body: unknown;
|
1197
|
+
params: {
|
1198
|
+
chainId: number;
|
1199
|
+
};
|
1200
|
+
query: unknown;
|
1201
|
+
headers: unknown;
|
1202
|
+
response: {
|
1203
|
+
200: {
|
1204
|
+
minimumAmountPerHour: any;
|
1205
|
+
symbol: string;
|
1206
|
+
name: string | null;
|
1207
|
+
id: string;
|
1208
|
+
icon: string;
|
1209
|
+
chainId: number;
|
1210
|
+
address: string;
|
1211
|
+
decimals: number;
|
1212
|
+
displaySymbol: string;
|
1213
|
+
verified: boolean;
|
1214
|
+
isTest: boolean;
|
1215
|
+
price: number | null;
|
1216
|
+
}[];
|
1217
|
+
};
|
1218
|
+
};
|
1219
|
+
};
|
1220
|
+
};
|
1221
|
+
};
|
1191
1222
|
} & {
|
1192
1223
|
tokens: {
|
1193
1224
|
balances: {
|
@@ -3126,6 +3157,23 @@ declare const app: Elysia<"", false, {
|
|
3126
3157
|
};
|
3127
3158
|
};
|
3128
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
|
+
};
|
3129
3177
|
};
|
3130
3178
|
} & {
|
3131
3179
|
v3: {
|
@@ -3204,8 +3252,8 @@ declare const app: Elysia<"", false, {
|
|
3204
3252
|
query: {
|
3205
3253
|
types?: string | number | string[] | number[] | undefined;
|
3206
3254
|
chainIds?: string | string[] | undefined;
|
3207
|
-
creatorTag?: string | undefined;
|
3208
3255
|
live?: boolean | undefined;
|
3256
|
+
creatorTag?: string | undefined;
|
3209
3257
|
hideTestTokens?: string | undefined;
|
3210
3258
|
};
|
3211
3259
|
headers: unknown;
|
@@ -1,6 +1,5 @@
|
|
1
|
-
import {
|
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
|
-
|
20
|
+
const tags = (await UserService.findUnique(campaign.creator))?.tags;
|
21
|
+
campaign.tags = tags || [];
|
26
22
|
}
|
27
23
|
}
|
28
24
|
catch (_err) { }
|
@@ -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 }) =>
|
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" | "
|
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" | "
|
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" | "
|
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" | "
|
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
|
};
|
@@ -1066,6 +1066,37 @@ export declare const v4: Elysia<"/v4", false, {
|
|
1066
1066
|
};
|
1067
1067
|
};
|
1068
1068
|
};
|
1069
|
+
} & {
|
1070
|
+
tokens: {
|
1071
|
+
reward: {
|
1072
|
+
":chainId": {
|
1073
|
+
get: {
|
1074
|
+
body: unknown;
|
1075
|
+
params: {
|
1076
|
+
chainId: number;
|
1077
|
+
};
|
1078
|
+
query: unknown;
|
1079
|
+
headers: unknown;
|
1080
|
+
response: {
|
1081
|
+
200: {
|
1082
|
+
minimumAmountPerHour: any;
|
1083
|
+
symbol: string;
|
1084
|
+
name: string | null;
|
1085
|
+
id: string;
|
1086
|
+
icon: string;
|
1087
|
+
chainId: number;
|
1088
|
+
address: string;
|
1089
|
+
decimals: number;
|
1090
|
+
displaySymbol: string;
|
1091
|
+
verified: boolean;
|
1092
|
+
isTest: boolean;
|
1093
|
+
price: number | null;
|
1094
|
+
}[];
|
1095
|
+
};
|
1096
|
+
};
|
1097
|
+
};
|
1098
|
+
};
|
1099
|
+
};
|
1069
1100
|
} & {
|
1070
1101
|
tokens: {
|
1071
1102
|
balances: {
|
@@ -3004,6 +3035,23 @@ export declare const v4: Elysia<"/v4", false, {
|
|
3004
3035
|
};
|
3005
3036
|
};
|
3006
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
|
+
};
|
3007
3055
|
};
|
3008
3056
|
}, {
|
3009
3057
|
derive: {};
|
@@ -38,6 +38,37 @@ export declare const TokenController: Elysia<"/tokens", false, {
|
|
38
38
|
};
|
39
39
|
};
|
40
40
|
};
|
41
|
+
} & {
|
42
|
+
tokens: {
|
43
|
+
reward: {
|
44
|
+
":chainId": {
|
45
|
+
get: {
|
46
|
+
body: unknown;
|
47
|
+
params: {
|
48
|
+
chainId: number;
|
49
|
+
};
|
50
|
+
query: unknown;
|
51
|
+
headers: unknown;
|
52
|
+
response: {
|
53
|
+
200: {
|
54
|
+
minimumAmountPerHour: any;
|
55
|
+
symbol: string;
|
56
|
+
name: string | null;
|
57
|
+
id: string;
|
58
|
+
icon: string;
|
59
|
+
chainId: number;
|
60
|
+
address: string;
|
61
|
+
decimals: number;
|
62
|
+
displaySymbol: string;
|
63
|
+
verified: boolean;
|
64
|
+
isTest: boolean;
|
65
|
+
price: number | null;
|
66
|
+
}[];
|
67
|
+
};
|
68
|
+
};
|
69
|
+
};
|
70
|
+
};
|
71
|
+
};
|
41
72
|
} & {
|
42
73
|
tokens: {
|
43
74
|
balances: {
|
@@ -2,6 +2,7 @@ import { NotFoundError } from "../../../errors/NotFound.error";
|
|
2
2
|
import { AuthorizationHeadersDto, BackOfficeGuard } from "../../../guards/BackOffice.guard";
|
3
3
|
import { throwOnInvalidRequiredAddress, throwOnUnsupportedChainId } from "../../../utils/throw";
|
4
4
|
import Elysia from "elysia";
|
5
|
+
import { ChainDto } from "../accounting";
|
5
6
|
import { CreateTokenDto, FindUniqueTokenDto, GetTokenBalanceDto, GetTokenQueryDto, TokenIdDto, UpdateTokenDto, } from "./token.model";
|
6
7
|
import { TokenService } from "./token.service";
|
7
8
|
// ─── Tokens Controller ───────────────────────────────────────────────────────
|
@@ -17,6 +18,11 @@ export const TokenController = new Elysia({ prefix: "/tokens", detail: { tags: [
|
|
17
18
|
throw new NotFoundError();
|
18
19
|
}
|
19
20
|
}, { params: FindUniqueTokenDto })
|
21
|
+
// ─── Get Valid Reward Token ───────────────────────────────────────────
|
22
|
+
.get("/reward/:chainId", async ({ params }) => TokenService.getValidRewardTokens(params.chainId), {
|
23
|
+
params: ChainDto,
|
24
|
+
beforeHandle: ({ params }) => throwOnUnsupportedChainId(params.chainId),
|
25
|
+
})
|
20
26
|
// ─── Get Tokens With Balances ────────────────────────────────────────
|
21
27
|
.get("/balances", async ({ query: { chainId, userAddress, tokenAddress, additionalTokenAddresses } }) => {
|
22
28
|
if (tokenAddress)
|
@@ -42,6 +42,19 @@ export declare abstract class TokenRepository {
|
|
42
42
|
isTest: boolean;
|
43
43
|
price: number | null;
|
44
44
|
}[]>;
|
45
|
+
static findList(chainId: number, addresses: string[]): Promise<{
|
46
|
+
symbol: string;
|
47
|
+
name: string | null;
|
48
|
+
id: string;
|
49
|
+
icon: string;
|
50
|
+
chainId: number;
|
51
|
+
address: string;
|
52
|
+
decimals: number;
|
53
|
+
displaySymbol: string;
|
54
|
+
verified: boolean;
|
55
|
+
isTest: boolean;
|
56
|
+
price: number | null;
|
57
|
+
}[]>;
|
45
58
|
static countMany(query: GetTokenQueryModel): Promise<number>;
|
46
59
|
/**
|
47
60
|
* upsert a token on database
|
@@ -67,6 +67,17 @@ export class TokenRepository {
|
|
67
67
|
});
|
68
68
|
return tokens;
|
69
69
|
}
|
70
|
+
static async findList(chainId, addresses) {
|
71
|
+
const tokens = await apiDbClient.token.findMany({
|
72
|
+
where: {
|
73
|
+
chainId,
|
74
|
+
address: {
|
75
|
+
in: addresses,
|
76
|
+
},
|
77
|
+
},
|
78
|
+
});
|
79
|
+
return tokens;
|
80
|
+
}
|
70
81
|
static async countMany(query) {
|
71
82
|
const args = TokenRepository.#transformQueryToPrismaFilters(query);
|
72
83
|
return await apiDbClient.token.count(args);
|
@@ -188,6 +188,20 @@ export declare abstract class TokenService {
|
|
188
188
|
* @param address
|
189
189
|
*/
|
190
190
|
static getManyOrCreate(tokens: TokenModel[]): Promise<(Token["model"] | undefined)[]>;
|
191
|
+
static getValidRewardTokens(chainId: number): Promise<{
|
192
|
+
minimumAmountPerHour: any;
|
193
|
+
symbol: string;
|
194
|
+
name: string | null;
|
195
|
+
id: string;
|
196
|
+
icon: string;
|
197
|
+
chainId: number;
|
198
|
+
address: string;
|
199
|
+
decimals: number;
|
200
|
+
displaySymbol: string;
|
201
|
+
verified: boolean;
|
202
|
+
isTest: boolean;
|
203
|
+
price: number | null;
|
204
|
+
}[]>;
|
191
205
|
static update(id: string, data: UpdateTokenModel): Promise<{
|
192
206
|
symbol: string;
|
193
207
|
name: string | null;
|