@merkl/api 0.10.207 → 0.10.209

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,15 @@
1
1
  import type { Campaign as CampaignResource } from "../modules/v4";
2
2
  import type { CampaignType } from "../../database/api/.generated";
3
3
  declare const eden: {
4
+ index: {
5
+ get: (options?: {
6
+ headers?: Record<string, unknown> | undefined;
7
+ query?: Record<string, unknown> | undefined;
8
+ fetch?: RequestInit | undefined;
9
+ } | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
10
+ 200: string;
11
+ }>>;
12
+ };
4
13
  v1: {
5
14
  allowances: {
6
15
  get: (options: {
@@ -99,7 +108,7 @@ declare const eden: {
99
108
  url: string;
100
109
  description: string;
101
110
  id: string;
102
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
111
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
103
112
  icon: string;
104
113
  } | null | undefined;
105
114
  aprRecord?: {
@@ -199,7 +208,7 @@ declare const eden: {
199
208
  url: string;
200
209
  description: string;
201
210
  id: string;
202
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
211
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
203
212
  icon: string;
204
213
  } | null | undefined;
205
214
  aprRecord?: {
@@ -760,7 +769,7 @@ declare const eden: {
760
769
  query: {
761
770
  name?: string | undefined;
762
771
  items?: number | undefined;
763
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING")[] | undefined;
772
+ tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
764
773
  page?: number | undefined;
765
774
  };
766
775
  fetch?: RequestInit | undefined;
@@ -779,6 +788,7 @@ declare const eden: {
779
788
  url: string;
780
789
  description: string;
781
790
  id: string;
791
+ tags: File | FileList;
782
792
  icon: string;
783
793
  }, options: {
784
794
  headers: {
@@ -2690,6 +2700,18 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
2690
2700
  macro: {};
2691
2701
  macroFn: {};
2692
2702
  }, {
2703
+ index: {
2704
+ get: {
2705
+ body: unknown;
2706
+ params: {};
2707
+ query: unknown;
2708
+ headers: unknown;
2709
+ response: {
2710
+ 200: string;
2711
+ };
2712
+ };
2713
+ };
2714
+ } & {
2693
2715
  v1: {
2694
2716
  allowances: {
2695
2717
  get: {
@@ -2984,7 +3006,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
2984
3006
  url: string;
2985
3007
  description: string;
2986
3008
  id: string;
2987
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
3009
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
2988
3010
  icon: string;
2989
3011
  } | null | undefined;
2990
3012
  aprRecord?: {
@@ -3093,7 +3115,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
3093
3115
  url: string;
3094
3116
  description: string;
3095
3117
  id: string;
3096
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
3118
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
3097
3119
  icon: string;
3098
3120
  } | null | undefined;
3099
3121
  aprRecord?: {
@@ -3510,7 +3532,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
3510
3532
  query: {
3511
3533
  name?: string | undefined;
3512
3534
  items?: number | undefined;
3513
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING")[] | undefined;
3535
+ tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
3514
3536
  page?: number | undefined;
3515
3537
  };
3516
3538
  headers: unknown;
@@ -3602,6 +3624,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
3602
3624
  url: string;
3603
3625
  description: string;
3604
3626
  id: string;
3627
+ tags: never[];
3605
3628
  icon: string;
3606
3629
  };
3607
3630
  params: {};
@@ -6021,6 +6044,15 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6021
6044
  resolve: {};
6022
6045
  schema: {};
6023
6046
  }>, config?: import("@elysiajs/eden").Treaty.Config) => {
6047
+ index: {
6048
+ get: (options?: {
6049
+ headers?: Record<string, unknown> | undefined;
6050
+ query?: Record<string, unknown> | undefined;
6051
+ fetch?: RequestInit | undefined;
6052
+ } | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
6053
+ 200: string;
6054
+ }>>;
6055
+ };
6024
6056
  v1: {
6025
6057
  allowances: {
6026
6058
  get: (options: {
@@ -6119,7 +6151,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6119
6151
  url: string;
6120
6152
  description: string;
6121
6153
  id: string;
6122
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
6154
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
6123
6155
  icon: string;
6124
6156
  } | null | undefined;
6125
6157
  aprRecord?: {
@@ -6219,7 +6251,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6219
6251
  url: string;
6220
6252
  description: string;
6221
6253
  id: string;
6222
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
6254
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
6223
6255
  icon: string;
6224
6256
  } | null | undefined;
6225
6257
  aprRecord?: {
@@ -6780,7 +6812,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6780
6812
  query: {
6781
6813
  name?: string | undefined;
6782
6814
  items?: number | undefined;
6783
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING")[] | undefined;
6815
+ tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
6784
6816
  page?: number | undefined;
6785
6817
  };
6786
6818
  fetch?: RequestInit | undefined;
@@ -6799,6 +6831,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6799
6831
  url: string;
6800
6832
  description: string;
6801
6833
  id: string;
6834
+ tags: File | FileList;
6802
6835
  icon: string;
6803
6836
  }, options: {
6804
6837
  headers: {
@@ -210,6 +210,7 @@ export const extractOpportunities = {
210
210
  "poolside",
211
211
  "koi",
212
212
  "pancakeswap",
213
+ "tempest",
213
214
  ],
214
215
  borrow: ["radiant_borrow", "aave_borrowing", "euler_borrow"],
215
216
  lend: [
@@ -24,6 +24,18 @@ declare const app: Elysia<"", false, {
24
24
  macro: {};
25
25
  macroFn: {};
26
26
  }, {
27
+ index: {
28
+ get: {
29
+ body: unknown;
30
+ params: {};
31
+ query: unknown;
32
+ headers: unknown;
33
+ response: {
34
+ 200: string;
35
+ };
36
+ };
37
+ };
38
+ } & {
27
39
  v1: {
28
40
  allowances: {
29
41
  get: {
@@ -318,7 +330,7 @@ declare const app: Elysia<"", false, {
318
330
  url: string;
319
331
  description: string;
320
332
  id: string;
321
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
333
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
322
334
  icon: string;
323
335
  } | null | undefined;
324
336
  aprRecord?: {
@@ -427,7 +439,7 @@ declare const app: Elysia<"", false, {
427
439
  url: string;
428
440
  description: string;
429
441
  id: string;
430
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
442
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
431
443
  icon: string;
432
444
  } | null | undefined;
433
445
  aprRecord?: {
@@ -844,7 +856,7 @@ declare const app: Elysia<"", false, {
844
856
  query: {
845
857
  name?: string | undefined;
846
858
  items?: number | undefined;
847
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING")[] | undefined;
859
+ tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
848
860
  page?: number | undefined;
849
861
  };
850
862
  headers: unknown;
@@ -936,6 +948,7 @@ declare const app: Elysia<"", false, {
936
948
  url: string;
937
949
  description: string;
938
950
  id: string;
951
+ tags: never[];
939
952
  icon: string;
940
953
  };
941
954
  params: {};
package/dist/src/index.js CHANGED
@@ -85,7 +85,7 @@ const app = new Elysia({
85
85
  exclude: [/engine\/*/, /v1\/.*/, /v2\/.*/, /v3\/.*/, /swagger\/*/],
86
86
  }))
87
87
  .use(cors())
88
- // .get("/", () => "Merkl API")
88
+ .get("/", () => "Merkl API: docs available at /docs")
89
89
  .use(v1)
90
90
  .use(v2)
91
91
  .use(v4)
@@ -83,8 +83,8 @@ export const GetCampaignQueryDto = t.Object({
83
83
  opportunityId: t.Optional(t.String({
84
84
  description: "Filter by opportunity. You can find opportunity ids by calling [GET /v4/opportunities](#tag/opportunities/GET/v4/opportunities)",
85
85
  })),
86
- startTimestamp: t.Optional(t.String({ pattern: "[0-9].*", description: "Returns campaigns starting *after* the given unix timestamp" })),
87
- endTimestamp: t.Optional(t.String({ pattern: "[0-9].*", description: "Returns campaigns ending *after* the given unix timestamp" })),
86
+ startTimestamp: t.Optional(t.String({ pattern: "[0-9]*", description: "Returns campaigns starting *after* the given unix timestamp" })),
87
+ endTimestamp: t.Optional(t.String({ pattern: "[0-9]*", description: "Returns campaigns ending *after* the given unix timestamp" })),
88
88
  page: t.Optional(t.Numeric({ description: "0-indexed page number", default: 0 })),
89
89
  items: t.Optional(t.Numeric({ description: "Number of items returned by page", default: 20 })), // items per page
90
90
  });
@@ -199,7 +199,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
199
199
  url: string;
200
200
  description: string;
201
201
  id: string;
202
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
202
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
203
203
  icon: string;
204
204
  } | null | undefined;
205
205
  aprRecord?: {
@@ -308,7 +308,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
308
308
  url: string;
309
309
  description: string;
310
310
  id: string;
311
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
311
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
312
312
  icon: string;
313
313
  } | null | undefined;
314
314
  aprRecord?: {
@@ -129,6 +129,7 @@ export declare const OpportunityResourceDto: import("@sinclair/typebox").TObject
129
129
  ALM: "ALM";
130
130
  DEX: "DEX";
131
131
  LENDING: "LENDING";
132
+ PERPETUAL: "PERPETUAL";
132
133
  }>>;
133
134
  description: import("@sinclair/typebox").TString;
134
135
  url: import("@sinclair/typebox").TString;
@@ -144,6 +145,7 @@ export declare const OpportunityWithCampaignsResourceDto: import("@sinclair/type
144
145
  ALM: "ALM";
145
146
  DEX: "DEX";
146
147
  LENDING: "LENDING";
148
+ PERPETUAL: "PERPETUAL";
147
149
  }>>;
148
150
  description: import("@sinclair/typebox").TString;
149
151
  url: import("@sinclair/typebox").TString;
@@ -20,7 +20,7 @@ export declare const ProtocolController: Elysia<"/protocols", false, {
20
20
  query: {
21
21
  name?: string | undefined;
22
22
  items?: number | undefined;
23
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING")[] | undefined;
23
+ tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
24
24
  page?: number | undefined;
25
25
  };
26
26
  headers: unknown;
@@ -112,6 +112,7 @@ export declare const ProtocolController: Elysia<"/protocols", false, {
112
112
  url: string;
113
113
  description: string;
114
114
  id: string;
115
+ tags: never[];
115
116
  icon: string;
116
117
  };
117
118
  params: {};
@@ -16,6 +16,7 @@ export declare const ProtocolResourceDto: import("@sinclair/typebox").TObject<{
16
16
  ALM: "ALM";
17
17
  DEX: "DEX";
18
18
  LENDING: "LENDING";
19
+ PERPETUAL: "PERPETUAL";
19
20
  }>>;
20
21
  description: import("@sinclair/typebox").TString;
21
22
  url: import("@sinclair/typebox").TString;
@@ -27,6 +28,7 @@ export declare const GetProtocolsQueryDto: import("@sinclair/typebox").TObject<{
27
28
  ALM: "ALM";
28
29
  DEX: "DEX";
29
30
  LENDING: "LENDING";
31
+ PERPETUAL: "PERPETUAL";
30
32
  }>>>;
31
33
  page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
32
34
  items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -45,6 +47,7 @@ export declare const CreateProtocolDto: import("@sinclair/typebox").TObject<{
45
47
  description: import("@sinclair/typebox").TString;
46
48
  id: import("@sinclair/typebox").TString;
47
49
  name: import("@sinclair/typebox").TString;
50
+ tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL">[]>>;
48
51
  }>;
49
52
  export declare const ProtocolIdDto: import("@sinclair/typebox").TObject<{
50
53
  id: import("@sinclair/typebox").TString;
@@ -87,5 +87,6 @@ export const CreateProtocolDto = t.Object({
87
87
  description: t.String(),
88
88
  id: t.String(),
89
89
  name: t.String(),
90
+ tags: t.Array(t.Union(Object.values(ProtocolTag).map(type => t.Literal(type)))),
90
91
  });
91
92
  export const ProtocolIdDto = t.Object({ id: t.String() });
@@ -1,7 +1,7 @@
1
- import type { GetProtocolsQueryModel, Protocol, UpdateProtocolModel } from "./protocol.model";
1
+ import type { CreateProtocolModel, GetProtocolsQueryModel, UpdateProtocolModel } from "./protocol.model";
2
2
  export declare abstract class ProtocolRepository {
3
3
  #private;
4
- static create(template: Protocol["action"]["create"]["args"]): Promise<{
4
+ static create(data: CreateProtocolModel): Promise<{
5
5
  name: string;
6
6
  url: string;
7
7
  description: string;
@@ -1,8 +1,17 @@
1
1
  import { apiDbClient } from "../../../utils/prisma";
2
2
  // ─── Protocols Repository ────────────────────────────────────────────────────
3
3
  export class ProtocolRepository {
4
- static async create(template) {
5
- return await apiDbClient.protocol.create(template);
4
+ static async create(data) {
5
+ return await apiDbClient.protocol.create({
6
+ data: {
7
+ id: data.id,
8
+ name: data.name,
9
+ icon: data.icon,
10
+ url: data.url,
11
+ description: data.description,
12
+ tags: data.tags,
13
+ },
14
+ });
6
15
  }
7
16
  static async read(type) {
8
17
  return await apiDbClient.protocol.findUnique({ where: { id: type } });
@@ -50,13 +50,7 @@ export class ProtocolService {
50
50
  return (await ProtocolRepository.findManyByName(name))[0];
51
51
  }
52
52
  static async create(data) {
53
- // let iconUri = data.icon;
54
- // if (data.iconFile) {
55
- // iconUri = await BucketService.upload("merkl-assets", `/protocols/${id}`, data.iconFile.stream(), true);
56
- // }
57
- return await ProtocolRepository.create({
58
- data,
59
- });
53
+ return await ProtocolRepository.create(data);
60
54
  }
61
55
  static async update(id, data) {
62
56
  // let iconUri = data.icon;
@@ -208,7 +208,7 @@ export declare const v4: Elysia<"/v4", false, {
208
208
  url: string;
209
209
  description: string;
210
210
  id: string;
211
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
211
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
212
212
  icon: string;
213
213
  } | null | undefined;
214
214
  aprRecord?: {
@@ -317,7 +317,7 @@ export declare const v4: Elysia<"/v4", false, {
317
317
  url: string;
318
318
  description: string;
319
319
  id: string;
320
- tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
320
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
321
321
  icon: string;
322
322
  } | null | undefined;
323
323
  aprRecord?: {
@@ -734,7 +734,7 @@ export declare const v4: Elysia<"/v4", false, {
734
734
  query: {
735
735
  name?: string | undefined;
736
736
  items?: number | undefined;
737
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING")[] | undefined;
737
+ tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
738
738
  page?: number | undefined;
739
739
  };
740
740
  headers: unknown;
@@ -826,6 +826,7 @@ export declare const v4: Elysia<"/v4", false, {
826
826
  url: string;
827
827
  description: string;
828
828
  id: string;
829
+ tags: never[];
829
830
  icon: string;
830
831
  };
831
832
  params: {};
@@ -94,6 +94,7 @@ export function generateCardName(type, typeInfo, campaign, symbols = [""]) {
94
94
  return `Stake ${typeInfo.symbolToken0}/${typeInfo.symbolToken1} LP on ${typeInfo.protocol}`;
95
95
  case tokenType.tempest:
96
96
  case tokenType.tempestStaking:
97
+ return `Deposit into ${typeInfo.symbolToken0}/${typeInfo.symbolToken1} vault on ${typeInfo.protocol}`;
97
98
  case tokenType.holdstation:
98
99
  return `Hold vault token ${campaign.campaignParameters.symbolTargetToken} on ${typeInfo.protocol}`;
99
100
  case tokenType.staking: