@merkl/api 0.10.169 → 0.10.170
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/database/api/.generated/edge.js +6 -3
- package/dist/database/api/.generated/index-browser.js +3 -0
- package/dist/database/api/.generated/index.d.ts +113 -0
- package/dist/database/api/.generated/index.js +6 -3
- package/dist/database/api/.generated/package.json +1 -1
- package/dist/database/api/.generated/schema.prisma +17 -15
- package/dist/database/api/.generated/wasm.js +3 -0
- package/dist/src/eden/index.d.ts +108 -3
- package/dist/src/index.d.ts +36 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/factoryFinder.js +2 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +3 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +8 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleYTProcessor.d.ts +29 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleYTProcessor.js +31 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +3 -0
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +4 -0
- package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
- package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
- package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -0
- package/dist/src/modules/v4/campaign/campaign.repository.js +2 -1
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +4 -0
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +18 -1
- package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -1
- package/dist/src/modules/v4/opportunity/opportunity.model.js +1 -0
- package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +24 -105
- package/dist/src/modules/v4/opportunity/opportunity.repository.js +2 -0
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +31 -5
- package/dist/src/modules/v4/price/price.controller.js +1 -1
- package/dist/src/modules/v4/price/price.service.d.ts +1 -1
- package/dist/src/modules/v4/price/price.service.js +3 -3
- package/dist/src/modules/v4/reward/reward.repository.d.ts +4 -0
- package/dist/src/modules/v4/reward/reward.service.d.ts +22 -0
- package/dist/src/modules/v4/router.d.ts +36 -1
- package/dist/src/modules/v4/token/token.controller.d.ts +6 -0
- package/dist/src/modules/v4/token/token.service.d.ts +12 -0
- package/dist/src/modules/v4/user/user.controller.d.ts +8 -0
- package/dist/src/routes/v3/blacklist.d.ts +36 -1
- package/dist/src/routes/v3/campaigns.d.ts +36 -1
- package/dist/src/routes/v3/campaignsInfo.d.ts +36 -1
- package/dist/src/routes/v3/multiChainPositions.d.ts +36 -1
- package/dist/src/routes/v3/opportunity.d.ts +36 -1
- package/dist/src/routes/v3/positions.d.ts +36 -1
- package/dist/src/routes/v3/rewards.d.ts +36 -1
- package/dist/src/routes/v3/updates.d.ts +36 -1
- package/dist/src/routes/v3/userRewards.d.ts +36 -1
- package/dist/src/utils/decodeCalls.js +4 -1
- package/dist/src/utils/encodeCalls.js +4 -1
- package/dist/src/utils/generateCardName.js +2 -0
- package/dist/src/utils/prices/services/erc4626Service.js +7 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/index.d.ts
CHANGED
@@ -119,7 +119,9 @@ declare const app: Elysia<"", false, {
|
|
119
119
|
address: string;
|
120
120
|
icon: string;
|
121
121
|
decimals: number;
|
122
|
+
displaySymbol: string;
|
122
123
|
verified: boolean;
|
124
|
+
isTest: boolean;
|
123
125
|
price: number | null;
|
124
126
|
};
|
125
127
|
amount: bigint;
|
@@ -134,7 +136,9 @@ declare const app: Elysia<"", false, {
|
|
134
136
|
address: string;
|
135
137
|
icon: string;
|
136
138
|
decimals: number;
|
139
|
+
displaySymbol: string;
|
137
140
|
verified: boolean;
|
141
|
+
isTest: boolean;
|
138
142
|
price: number | null;
|
139
143
|
}[];
|
140
144
|
chain: {
|
@@ -218,7 +222,9 @@ declare const app: Elysia<"", false, {
|
|
218
222
|
address: string;
|
219
223
|
icon: string;
|
220
224
|
decimals: number;
|
225
|
+
displaySymbol: string;
|
221
226
|
verified: boolean;
|
227
|
+
isTest: boolean;
|
222
228
|
price: number | null;
|
223
229
|
};
|
224
230
|
amount: bigint;
|
@@ -233,7 +239,9 @@ declare const app: Elysia<"", false, {
|
|
233
239
|
address: string;
|
234
240
|
icon: string;
|
235
241
|
decimals: number;
|
242
|
+
displaySymbol: string;
|
236
243
|
verified: boolean;
|
244
|
+
isTest: boolean;
|
237
245
|
price: number | null;
|
238
246
|
}[];
|
239
247
|
chain: {
|
@@ -274,7 +282,9 @@ declare const app: Elysia<"", false, {
|
|
274
282
|
address: string;
|
275
283
|
icon: string;
|
276
284
|
decimals: number;
|
285
|
+
displaySymbol: string;
|
277
286
|
verified: boolean;
|
287
|
+
isTest: boolean;
|
278
288
|
price: number | null;
|
279
289
|
};
|
280
290
|
distributionChain: {
|
@@ -327,6 +337,7 @@ declare const app: Elysia<"", false, {
|
|
327
337
|
action?: string | undefined;
|
328
338
|
mainProtocolId?: string | undefined;
|
329
339
|
order?: undefined;
|
340
|
+
test?: boolean | undefined;
|
330
341
|
minimumTvl?: number | undefined;
|
331
342
|
};
|
332
343
|
headers: unknown;
|
@@ -372,7 +383,9 @@ declare const app: Elysia<"", false, {
|
|
372
383
|
address: string;
|
373
384
|
icon: string;
|
374
385
|
decimals: number;
|
386
|
+
displaySymbol: string;
|
375
387
|
verified: boolean;
|
388
|
+
isTest: boolean;
|
376
389
|
price: number | null;
|
377
390
|
};
|
378
391
|
amount: bigint;
|
@@ -387,7 +400,9 @@ declare const app: Elysia<"", false, {
|
|
387
400
|
address: string;
|
388
401
|
icon: string;
|
389
402
|
decimals: number;
|
403
|
+
displaySymbol: string;
|
390
404
|
verified: boolean;
|
405
|
+
isTest: boolean;
|
391
406
|
price: number | null;
|
392
407
|
}[];
|
393
408
|
chain: {
|
@@ -436,6 +451,7 @@ declare const app: Elysia<"", false, {
|
|
436
451
|
action?: string | undefined;
|
437
452
|
mainProtocolId?: string | undefined;
|
438
453
|
order?: undefined;
|
454
|
+
test?: boolean | undefined;
|
439
455
|
minimumTvl?: number | undefined;
|
440
456
|
};
|
441
457
|
headers: unknown;
|
@@ -466,12 +482,13 @@ declare const app: Elysia<"", false, {
|
|
466
482
|
action?: string | undefined;
|
467
483
|
mainProtocolId?: string | undefined;
|
468
484
|
order?: undefined;
|
485
|
+
test?: boolean | undefined;
|
469
486
|
minimumTvl?: number | undefined;
|
470
487
|
};
|
471
488
|
headers: unknown;
|
472
489
|
response: {
|
473
490
|
200: {
|
474
|
-
sum:
|
491
|
+
sum: number | null;
|
475
492
|
};
|
476
493
|
};
|
477
494
|
};
|
@@ -541,6 +558,7 @@ declare const app: Elysia<"", false, {
|
|
541
558
|
campaignId?: string | undefined;
|
542
559
|
opportunityId?: string | undefined;
|
543
560
|
tokenSymbol?: string | undefined;
|
561
|
+
test?: boolean | undefined;
|
544
562
|
};
|
545
563
|
headers: unknown;
|
546
564
|
response: {
|
@@ -559,7 +577,9 @@ declare const app: Elysia<"", false, {
|
|
559
577
|
address: string;
|
560
578
|
icon: string;
|
561
579
|
decimals: number;
|
580
|
+
displaySymbol: string;
|
562
581
|
verified: boolean;
|
582
|
+
isTest: boolean;
|
563
583
|
price: number | null;
|
564
584
|
};
|
565
585
|
distributionChain: {
|
@@ -609,6 +629,7 @@ declare const app: Elysia<"", false, {
|
|
609
629
|
campaignId?: string | undefined;
|
610
630
|
opportunityId?: string | undefined;
|
611
631
|
tokenSymbol?: string | undefined;
|
632
|
+
test?: boolean | undefined;
|
612
633
|
};
|
613
634
|
headers: unknown;
|
614
635
|
response: {
|
@@ -762,7 +783,9 @@ declare const app: Elysia<"", false, {
|
|
762
783
|
address: string;
|
763
784
|
icon: string;
|
764
785
|
decimals: number;
|
786
|
+
displaySymbol: string;
|
765
787
|
verified: boolean;
|
788
|
+
isTest: boolean;
|
766
789
|
price?: number | null | undefined;
|
767
790
|
} | undefined;
|
768
791
|
};
|
@@ -791,7 +814,9 @@ declare const app: Elysia<"", false, {
|
|
791
814
|
address: string;
|
792
815
|
icon: string;
|
793
816
|
decimals: number;
|
817
|
+
displaySymbol: string;
|
794
818
|
verified: boolean;
|
819
|
+
isTest: boolean;
|
795
820
|
} & {
|
796
821
|
price?: number | null | undefined;
|
797
822
|
} & {
|
@@ -824,7 +849,9 @@ declare const app: Elysia<"", false, {
|
|
824
849
|
address: string;
|
825
850
|
icon: string;
|
826
851
|
decimals: number;
|
852
|
+
displaySymbol: string;
|
827
853
|
verified: boolean;
|
854
|
+
isTest: boolean;
|
828
855
|
} & {
|
829
856
|
price?: number | null | undefined;
|
830
857
|
})[];
|
@@ -1487,7 +1514,9 @@ declare const app: Elysia<"", false, {
|
|
1487
1514
|
address: string;
|
1488
1515
|
icon: string;
|
1489
1516
|
decimals: number;
|
1517
|
+
displaySymbol: string;
|
1490
1518
|
verified: boolean;
|
1519
|
+
isTest: boolean;
|
1491
1520
|
price: number | null;
|
1492
1521
|
};
|
1493
1522
|
breakdowns: {
|
@@ -1506,7 +1535,9 @@ declare const app: Elysia<"", false, {
|
|
1506
1535
|
address: string;
|
1507
1536
|
icon: string;
|
1508
1537
|
decimals: number;
|
1538
|
+
displaySymbol: string;
|
1509
1539
|
verified: boolean;
|
1540
|
+
isTest: boolean;
|
1510
1541
|
price: number | null;
|
1511
1542
|
}[];
|
1512
1543
|
Protocols: {
|
@@ -1597,7 +1628,9 @@ declare const app: Elysia<"", false, {
|
|
1597
1628
|
address: string;
|
1598
1629
|
icon: string;
|
1599
1630
|
decimals: number;
|
1631
|
+
displaySymbol: string;
|
1600
1632
|
verified: boolean;
|
1633
|
+
isTest: boolean;
|
1601
1634
|
price: number | null;
|
1602
1635
|
};
|
1603
1636
|
breakdowns: {
|
@@ -1616,7 +1649,9 @@ declare const app: Elysia<"", false, {
|
|
1616
1649
|
address: string;
|
1617
1650
|
icon: string;
|
1618
1651
|
decimals: number;
|
1652
|
+
displaySymbol: string;
|
1619
1653
|
verified: boolean;
|
1654
|
+
isTest: boolean;
|
1620
1655
|
price: number | null;
|
1621
1656
|
}[];
|
1622
1657
|
Protocols: {
|
@@ -15,6 +15,8 @@ const factoryAddresses = {
|
|
15
15
|
"0xa19C51D91891D3DF7C13Ed22a2f89d328A82950f": tokenType.fenix, // Fenix Factory
|
16
16
|
"0x3a76e377ED58c8731F9DF3A36155942438744Ce3": tokenType.zkswap, // ZKSwap Factory
|
17
17
|
"0x6fcf753f2C67b83f7B09746Bbc4FA0047b35D050": tokenType.pendle, // Pendle Factory
|
18
|
+
"0x35A338522a435D46f77Be32C70E215B813D0e3aC": tokenType.pendleYT, // Pendle YT Factory
|
19
|
+
"0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73": tokenType.pancakeswap, // PancakeSwap Factory BNB
|
18
20
|
};
|
19
21
|
export function getTypeFromFactoryAddress(address) {
|
20
22
|
if (factoryAddresses[address]) {
|
@@ -53,7 +53,9 @@ export declare enum tokenType {
|
|
53
53
|
maverickBoostedPosition = "maverickBoostedPosition",
|
54
54
|
zkSwapThreePool = "zkSwapThreePool",
|
55
55
|
maha = "maha",
|
56
|
-
tempest = "tempest"
|
56
|
+
tempest = "tempest",
|
57
|
+
pendleYT = "pendleYT",
|
58
|
+
pancakeswap = "pancakeswap"
|
57
59
|
}
|
58
60
|
export declare const tokenTypeToProtocol: {
|
59
61
|
[key in tokenType]: {
|
@@ -55,6 +55,8 @@ export var tokenType;
|
|
55
55
|
tokenType["zkSwapThreePool"] = "zkSwapThreePool";
|
56
56
|
tokenType["maha"] = "maha";
|
57
57
|
tokenType["tempest"] = "tempest";
|
58
|
+
tokenType["pendleYT"] = "pendleYT";
|
59
|
+
tokenType["pancakeswap"] = "pancakeswap";
|
58
60
|
})(tokenType || (tokenType = {}));
|
59
61
|
export const tokenTypeToProtocol = {
|
60
62
|
[tokenType.aave_borrowing]: { protocol: "Aave" },
|
@@ -123,4 +125,10 @@ export const tokenTypeToProtocol = {
|
|
123
125
|
[tokenType.tempest]: {
|
124
126
|
protocol: "Tempest",
|
125
127
|
},
|
128
|
+
[tokenType.pendleYT]: {
|
129
|
+
protocol: "Pendle",
|
130
|
+
},
|
131
|
+
[tokenType.pancakeswap]: {
|
132
|
+
protocol: "PancakeSwap V2",
|
133
|
+
},
|
126
134
|
};
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import type { Pricer } from "../../../../../utils/pricer";
|
2
|
+
import { type Campaign, type CampaignParameters } from "@sdk";
|
3
|
+
import type { tokenType } from "../helpers/tokenType";
|
4
|
+
import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
|
5
|
+
type callType = {
|
6
|
+
key: keyof dataRawPendleYT;
|
7
|
+
call: string;
|
8
|
+
target: keyof callKeysPendleYT;
|
9
|
+
metaData?: keyof callKeysPendleYT;
|
10
|
+
};
|
11
|
+
type callKeysPendleYT = mandatoryCallKeys & {
|
12
|
+
SYToken: string;
|
13
|
+
underlying: string;
|
14
|
+
symbolUnderlyingToken: string;
|
15
|
+
};
|
16
|
+
type dataRawPendleYT = callKeysPendleYT & {
|
17
|
+
readTokensRaw: string[];
|
18
|
+
};
|
19
|
+
type dataTypePendleYT = dataType & {};
|
20
|
+
export declare class PendleYTProcessor extends GenericProcessor<callKeysPendleYT, dataRawPendleYT, dataTypePendleYT> {
|
21
|
+
rounds: {
|
22
|
+
round1: callType[];
|
23
|
+
round2: callType[];
|
24
|
+
round3: callType[];
|
25
|
+
round4: callType[];
|
26
|
+
};
|
27
|
+
processingRound5(_index: number, type: tokenType, typeInfo: dataRawPendleYT, _calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<dataTypePendleYT>;
|
28
|
+
}
|
29
|
+
export {};
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { generateCardName } from "../../../../../utils/generateCardName";
|
2
|
+
import { ChainId } from "@sdk";
|
3
|
+
import { GenericProcessor } from "./GenericProcessor";
|
4
|
+
export class PendleYTProcessor extends GenericProcessor {
|
5
|
+
rounds = {
|
6
|
+
round1: [
|
7
|
+
{ key: "SYToken", call: "SY", target: "tokenAddress" },
|
8
|
+
{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" },
|
9
|
+
],
|
10
|
+
round2: [{ key: "underlying", call: "underlying", target: "SYToken" }],
|
11
|
+
round3: [{ key: "symbolUnderlyingToken", call: "symbol", target: "underlying" }],
|
12
|
+
round4: [],
|
13
|
+
};
|
14
|
+
async processingRound5(_index, type, typeInfo, _calls, campaign, pricer) {
|
15
|
+
const { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
|
16
|
+
const priceTargetToken = (await pricer.get({
|
17
|
+
address: typeInfo.tokenAddress,
|
18
|
+
chainId: ChainId.MAINNET,
|
19
|
+
})) ?? 0;
|
20
|
+
const tvl = priceTargetToken * totalSupply;
|
21
|
+
return {
|
22
|
+
...typeInfo,
|
23
|
+
totalSupply,
|
24
|
+
tvl,
|
25
|
+
whitelistedSupplyTargetToken,
|
26
|
+
priceTargetToken: priceTargetToken,
|
27
|
+
cardName: generateCardName(type, typeInfo, campaign),
|
28
|
+
blacklistedSupply,
|
29
|
+
};
|
30
|
+
}
|
31
|
+
}
|
@@ -16,6 +16,7 @@ import { GenericProcessor } from "./GenericProcessor";
|
|
16
16
|
import { MaverickBPProcessor } from "./MaverickBPProcessor";
|
17
17
|
import { MetamorphoProcessor } from "./MetamorphoProcessor";
|
18
18
|
import { PendleProcessor } from "./PendleProcessor";
|
19
|
+
import { PendleYTProcessor } from "./PendleYTProcessor";
|
19
20
|
import { RadiantProcessor } from "./RadiantProcessor";
|
20
21
|
import { RfxProcessor } from "./RfxProcessor";
|
21
22
|
import { SpliceProcessor } from "./SpliceProcessor";
|
@@ -82,4 +83,6 @@ export const processorMapping = {
|
|
82
83
|
[tokenType.zkSwapThreePool]: ZkSwapThreePoolProcessor,
|
83
84
|
[tokenType.maha]: StakedCurveProcessor,
|
84
85
|
[tokenType.tempest]: TempestVaultProcessor,
|
86
|
+
[tokenType.pendleYT]: PendleYTProcessor,
|
87
|
+
[tokenType.pancakeswap]: UniswapProcessor,
|
85
88
|
};
|
@@ -72,6 +72,7 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
|
|
72
72
|
campaignId?: string | undefined;
|
73
73
|
opportunityId?: string | undefined;
|
74
74
|
tokenSymbol?: string | undefined;
|
75
|
+
test?: boolean | undefined;
|
75
76
|
};
|
76
77
|
headers: unknown;
|
77
78
|
response: {
|
@@ -90,7 +91,9 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
|
|
90
91
|
address: string;
|
91
92
|
icon: string;
|
92
93
|
decimals: number;
|
94
|
+
displaySymbol: string;
|
93
95
|
verified: boolean;
|
96
|
+
isTest: boolean;
|
94
97
|
price: number | null;
|
95
98
|
};
|
96
99
|
distributionChain: {
|
@@ -140,6 +143,7 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
|
|
140
143
|
campaignId?: string | undefined;
|
141
144
|
opportunityId?: string | undefined;
|
142
145
|
tokenSymbol?: string | undefined;
|
146
|
+
test?: boolean | undefined;
|
143
147
|
};
|
144
148
|
headers: unknown;
|
145
149
|
response: {
|
@@ -77,6 +77,7 @@ export declare const GetCampaignQueryDto: import("@sinclair/typebox").TObject<{
|
|
77
77
|
mainParameter: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
78
78
|
tokenSymbol: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
79
79
|
tokenAddress: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
80
|
+
test: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
80
81
|
opportunityId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
81
82
|
startTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
82
83
|
endTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
@@ -48,6 +48,7 @@ export const GetCampaignQueryDto = t.Object({
|
|
48
48
|
mainParameter: t.Optional(t.String()),
|
49
49
|
tokenSymbol: t.Optional(t.String()),
|
50
50
|
tokenAddress: t.Optional(t.String()),
|
51
|
+
test: t.Optional(t.Boolean()),
|
51
52
|
opportunityId: t.Optional(t.String()),
|
52
53
|
startTimestamp: t.Optional(t.String({ pattern: "[0-9].*" })),
|
53
54
|
endTimestamp: t.Optional(t.String({ pattern: "[0-9].*" })),
|
@@ -10,7 +10,7 @@ import { TokenService } from "../token";
|
|
10
10
|
export class CampaignRepository {
|
11
11
|
// ─── Private Methods ─────────────────────────────────────────────────
|
12
12
|
static #transformQueryToPrismaFilters(query) {
|
13
|
-
const { chainId, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, subType, type, tokenAddress, tokenSymbol, } = query;
|
13
|
+
const { chainId, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, subType, type, tokenAddress, tokenSymbol, test, } = query;
|
14
14
|
return {
|
15
15
|
where: {
|
16
16
|
computeChainId: chainId,
|
@@ -26,6 +26,7 @@ export class CampaignRepository {
|
|
26
26
|
RewardToken: {
|
27
27
|
address: tokenAddress ? tokenAddress : undefined,
|
28
28
|
symbol: tokenSymbol ? tokenSymbol : undefined,
|
29
|
+
isTest: !test ? false : undefined,
|
29
30
|
},
|
30
31
|
},
|
31
32
|
};
|
@@ -43,7 +43,9 @@ export declare abstract class CampaignService {
|
|
43
43
|
address: string;
|
44
44
|
icon: string;
|
45
45
|
decimals: number;
|
46
|
+
displaySymbol: string;
|
46
47
|
verified: boolean;
|
48
|
+
isTest: boolean;
|
47
49
|
price: number | null;
|
48
50
|
};
|
49
51
|
distributionChain: {
|
@@ -175,7 +177,9 @@ export declare abstract class CampaignService {
|
|
175
177
|
address: string;
|
176
178
|
icon: string;
|
177
179
|
decimals: number;
|
180
|
+
displaySymbol: string;
|
178
181
|
verified: boolean;
|
182
|
+
isTest: boolean;
|
179
183
|
price: number | null;
|
180
184
|
};
|
181
185
|
distributionChain: {
|
@@ -92,7 +92,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
92
92
|
address: string;
|
93
93
|
icon: string;
|
94
94
|
decimals: number;
|
95
|
+
displaySymbol: string;
|
95
96
|
verified: boolean;
|
97
|
+
isTest: boolean;
|
96
98
|
price: number | null;
|
97
99
|
};
|
98
100
|
amount: bigint;
|
@@ -107,7 +109,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
107
109
|
address: string;
|
108
110
|
icon: string;
|
109
111
|
decimals: number;
|
112
|
+
displaySymbol: string;
|
110
113
|
verified: boolean;
|
114
|
+
isTest: boolean;
|
111
115
|
price: number | null;
|
112
116
|
}[];
|
113
117
|
chain: {
|
@@ -191,7 +195,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
191
195
|
address: string;
|
192
196
|
icon: string;
|
193
197
|
decimals: number;
|
198
|
+
displaySymbol: string;
|
194
199
|
verified: boolean;
|
200
|
+
isTest: boolean;
|
195
201
|
price: number | null;
|
196
202
|
};
|
197
203
|
amount: bigint;
|
@@ -206,7 +212,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
206
212
|
address: string;
|
207
213
|
icon: string;
|
208
214
|
decimals: number;
|
215
|
+
displaySymbol: string;
|
209
216
|
verified: boolean;
|
217
|
+
isTest: boolean;
|
210
218
|
price: number | null;
|
211
219
|
}[];
|
212
220
|
chain: {
|
@@ -247,7 +255,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
247
255
|
address: string;
|
248
256
|
icon: string;
|
249
257
|
decimals: number;
|
258
|
+
displaySymbol: string;
|
250
259
|
verified: boolean;
|
260
|
+
isTest: boolean;
|
251
261
|
price: number | null;
|
252
262
|
};
|
253
263
|
distributionChain: {
|
@@ -300,6 +310,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
300
310
|
action?: string | undefined;
|
301
311
|
mainProtocolId?: string | undefined;
|
302
312
|
order?: undefined;
|
313
|
+
test?: boolean | undefined;
|
303
314
|
minimumTvl?: number | undefined;
|
304
315
|
};
|
305
316
|
headers: unknown;
|
@@ -345,7 +356,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
345
356
|
address: string;
|
346
357
|
icon: string;
|
347
358
|
decimals: number;
|
359
|
+
displaySymbol: string;
|
348
360
|
verified: boolean;
|
361
|
+
isTest: boolean;
|
349
362
|
price: number | null;
|
350
363
|
};
|
351
364
|
amount: bigint;
|
@@ -360,7 +373,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
360
373
|
address: string;
|
361
374
|
icon: string;
|
362
375
|
decimals: number;
|
376
|
+
displaySymbol: string;
|
363
377
|
verified: boolean;
|
378
|
+
isTest: boolean;
|
364
379
|
price: number | null;
|
365
380
|
}[];
|
366
381
|
chain: {
|
@@ -409,6 +424,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
409
424
|
action?: string | undefined;
|
410
425
|
mainProtocolId?: string | undefined;
|
411
426
|
order?: undefined;
|
427
|
+
test?: boolean | undefined;
|
412
428
|
minimumTvl?: number | undefined;
|
413
429
|
};
|
414
430
|
headers: unknown;
|
@@ -439,12 +455,13 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
|
|
439
455
|
action?: string | undefined;
|
440
456
|
mainProtocolId?: string | undefined;
|
441
457
|
order?: undefined;
|
458
|
+
test?: boolean | undefined;
|
442
459
|
minimumTvl?: number | undefined;
|
443
460
|
};
|
444
461
|
headers: unknown;
|
445
462
|
response: {
|
446
463
|
200: {
|
447
|
-
sum:
|
464
|
+
sum: number | null;
|
448
465
|
};
|
449
466
|
};
|
450
467
|
};
|
@@ -53,6 +53,7 @@ export declare const GetOpportunitiesQueryDto: import("@sinclair/typebox").TObje
|
|
53
53
|
INVALID: "INVALID";
|
54
54
|
}>, import("@sinclair/typebox").TRegExp]>>;
|
55
55
|
tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
56
|
+
test: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
56
57
|
minimumTvl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
57
58
|
tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
58
59
|
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TEnum<{
|
@@ -111,7 +112,7 @@ export declare const CreateOpportunityDto: import("@sinclair/typebox").TObject<{
|
|
111
112
|
export declare const OpportunityAggregateFieldDto: import("@sinclair/typebox").TObject<{
|
112
113
|
field: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"dailyRewards">[]>;
|
113
114
|
}>;
|
114
|
-
export type
|
115
|
+
export type GetOpportunitiesQueryModel = typeof GetOpportunitiesQueryDto.static;
|
115
116
|
export type CreateOpportunityModel = typeof CreateOpportunityDto.static & {
|
116
117
|
id: string;
|
117
118
|
};
|
@@ -15,6 +15,7 @@ export const GetOpportunitiesQueryDto = t.Object({
|
|
15
15
|
//TODO: find a systemic way of handling query param arrays
|
16
16
|
action: t.Optional(t.Union([t.Enum(OpportunityAction), t.RegExp(/^(POOL|HOLD|DROP|LEND|BORROW)+(,(POOL|HOLD|DROP|LEND|BORROW)+)*$/)])),
|
17
17
|
tags: t.Optional(t.String()),
|
18
|
+
test: t.Optional(t.Boolean()),
|
18
19
|
minimumTvl: t.Optional(t.Number()),
|
19
20
|
tokens: t.Optional(t.String({ title: "Symbol" })),
|
20
21
|
status: t.Optional(t.Union([t.Enum(Status), t.RegExp(/^(LIVE|PAST|SOON)+(,(LIVE|PAST|SOON)+)*$/)])),
|