@merkl/api 0.10.316 → 0.10.318
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 +429 -20
- package/dist/src/index.d.ts +157 -6
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +74 -0
- package/dist/src/modules/v4/opportunity/opportunity.controller.js +10 -0
- package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +1 -1
- package/dist/src/modules/v4/opportunity/opportunity.model.js +1 -1
- package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +6 -0
- package/dist/src/modules/v4/opportunity/opportunity.repository.js +20 -0
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +6 -0
- package/dist/src/modules/v4/opportunity/opportunity.service.js +6 -0
- package/dist/src/modules/v4/programPayload/programPayload.controller.d.ts +83 -6
- package/dist/src/modules/v4/programPayload/programPayload.controller.js +11 -1
- package/dist/src/modules/v4/programPayload/programPayload.model.d.ts +108 -0
- package/dist/src/modules/v4/programPayload/programPayload.model.js +50 -15
- package/dist/src/modules/v4/programPayload/programPayload.service.d.ts +12 -5
- package/dist/src/modules/v4/programPayload/programPayload.service.js +65 -40
- package/dist/src/modules/v4/router.d.ts +157 -6
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -1,23 +1,58 @@
|
|
1
1
|
import { t } from "elysia";
|
2
2
|
// ─── DTOs ────────────────────────────────────────────────────────────────────
|
3
3
|
export const CampaignPayloadInputDto = t.Object({
|
4
|
-
campaign: t.String(),
|
5
|
-
program: t.String(),
|
6
|
-
creator: t.String(),
|
7
|
-
rewardToken: t.String(),
|
8
|
-
distributionChainId: t.Numeric(),
|
9
|
-
startTimestamp: t.Numeric(),
|
10
|
-
endTimestamp: t.Numeric(),
|
11
|
-
amount: t.String(),
|
4
|
+
campaign: t.String({ description: "Campaign identifier, these are shared by the merkl team" }),
|
5
|
+
program: t.String({ description: "Program identifier, these are shared by the merkl team" }),
|
6
|
+
creator: t.String({ description: "Address of the campaign creator" }),
|
7
|
+
rewardToken: t.String({ description: "Address of the reward token to be distributed" }),
|
8
|
+
distributionChainId: t.Numeric({ description: "Chain ID where the reward tokens will be distributed" }),
|
9
|
+
startTimestamp: t.Numeric({ description: "Start timestamp for the campaign" }),
|
10
|
+
endTimestamp: t.Numeric({ description: "End timestamp for the campaign" }),
|
11
|
+
amount: t.String({ description: "Amount of the reward token to be distributed" }),
|
12
|
+
});
|
13
|
+
export const SinglePayloadInputDto = t.Object({
|
14
|
+
distributionChainId: t.Numeric({ description: "Chain ID where the reward tokens will be distributed" }),
|
15
|
+
rewardToken: t.String({ description: "Address of the reward token to be distributed" }),
|
16
|
+
amount: t.String({ description: "Amount of the reward token to be distributed" }),
|
17
|
+
startTimestamp: t.Numeric({ description: "Start timestamp for the campaign" }),
|
18
|
+
computeChainId: t.Numeric({ description: "Chain ID used for computation" }),
|
19
|
+
creator: t.String({ description: "Address of the campaign creator" }),
|
20
|
+
hooks: t.Array(t.Object({})),
|
21
|
+
whitelist: t.Array(t.String({ description: "List of addresses allowed to participate" })),
|
22
|
+
blacklist: t.Array(t.String({ description: "List of addresses not allowed to participate" })),
|
23
|
+
campaignType: t.Numeric({ description: "Type of the campaign 1 : ERC20, 2: CLAMM , ..." }),
|
24
|
+
endTimestamp: t.Optional(t.Numeric({ description: "End timestamp for the campaign" })),
|
25
|
+
targetToken: t.Optional(t.String({ description: "Address of the target token that is incentivized" })),
|
26
|
+
url: t.Optional(t.String({ description: "URL for more information" })),
|
27
|
+
forwarders: t.Optional(t.Array(t.Object({}))),
|
28
|
+
poolAddress: t.Optional(t.String({ description: "Address of the pool that is incentivized" })),
|
29
|
+
isOutOfRangeIncentivized: t.Optional(t.Boolean({ description: "Whether out-of-range is incentivized" })),
|
30
|
+
weightFees: t.Optional(t.Number({ description: "Weight of the fees" })),
|
31
|
+
weightToken0: t.Optional(t.Number({ description: "Weight of token 0" })),
|
32
|
+
weightToken1: t.Optional(t.Number({ description: "Weight of token 1" })),
|
33
|
+
usesBlockNumber: t.Optional(t.Boolean({ description: "Whether block number is used" })),
|
34
|
+
snapshotTimestamp: t.Optional(t.Numeric({ description: "Snapshot timestamp" })),
|
35
|
+
snapshotBlockNumber: t.Optional(t.Numeric({ description: "Snapshot block number" })),
|
36
|
+
jsonUrl: t.Optional(t.String({ description: "URL for JSON data for Airdrops" })),
|
37
|
+
subCampaignType: t.Optional(t.Numeric({ description: "Type of the sub-campaign" })),
|
38
|
+
repository: t.Optional(t.String({ description: "Repository URL" })),
|
39
|
+
capInUSD: t.Optional(t.String({ description: "Cap in USD" })),
|
40
|
+
marketId: t.Optional(t.String({ description: "Market ID" })),
|
41
|
+
compFork: t.Optional(t.Numeric({ description: "Compound fork ID" })),
|
42
|
+
poolId: t.Optional(t.String({ description: "Pool ID that is incentivized" })),
|
43
|
+
evkAddress: t.Optional(t.String({ description: "EVK address" })),
|
44
|
+
collateralAddress: t.Optional(t.String({ description: "Collateral address" })),
|
45
|
+
strategy: t.Optional(t.String({ description: "Strategy that is incentivized" })),
|
46
|
+
contract: t.Optional(t.String({ description: "Contract address" })),
|
12
47
|
});
|
13
48
|
export const ProgramPayloadInputDto = t.Object({
|
14
|
-
program: t.String(),
|
15
|
-
creator: t.String(),
|
16
|
-
rewardToken: t.String(),
|
17
|
-
distributionChainId: t.Numeric(),
|
18
|
-
startTimestamp: t.Numeric(),
|
19
|
-
endTimestamp: t.Numeric(),
|
20
|
-
amount: t.Optional(t.String()),
|
49
|
+
program: t.String({ description: "Program identifier, these are shared by the merkl team" }),
|
50
|
+
creator: t.String({ description: "Address of the campaign creator" }),
|
51
|
+
rewardToken: t.String({ description: "Address of the reward token to be distributed" }),
|
52
|
+
distributionChainId: t.Numeric({ description: "Chain ID where the reward tokens will be distributed" }),
|
53
|
+
startTimestamp: t.Numeric({ description: "Start timestamp for the campaign" }),
|
54
|
+
endTimestamp: t.Numeric({ description: "End timestamp for the campaign" }),
|
55
|
+
amount: t.Optional(t.String({ description: "Amount of the reward token to be distributed" })),
|
21
56
|
});
|
22
57
|
export const CampaignAmountsInputDto = t.Record(t.String(), t.String());
|
23
58
|
// ---- Template below ----
|
@@ -1,12 +1,19 @@
|
|
1
|
-
import { type Campaign, type campaignConfig } from "@sdk";
|
2
|
-
import
|
1
|
+
import { type Campaign, ChainId, type campaignConfig } from "@sdk";
|
2
|
+
import type { CampaignParametersStruct } from "libs/sdk/src/generated/CampaignCreator";
|
3
|
+
import { type CampaignAmountsInputModel, type CampaignPayloadInputModel, type ProgramPayloadInputModel, type SinglePayloadInputDtoModel, type approvalTransaction, type createCampaignTransaction, type safePayload } from "./programPayload.model";
|
3
4
|
export declare class ProgramPayloadService {
|
4
5
|
static buildConfig(query: CampaignPayloadInputModel): campaignConfig<Campaign>;
|
5
6
|
/** building payload for a single campaign */
|
6
7
|
static buildCampaignData(query: CampaignPayloadInputModel): {
|
7
8
|
args: any;
|
8
9
|
};
|
9
|
-
static
|
10
|
-
|
11
|
-
|
10
|
+
static buildPayloadFromConfig(config: SinglePayloadInputDtoModel): Promise<{
|
11
|
+
safePayload: safePayload;
|
12
|
+
nonEncodedConfig: any;
|
13
|
+
}>;
|
14
|
+
static createSafePayloadForCampaign(args: CampaignParametersStruct, distributionChainId: ChainId, rewardToken: string, distributionCreator: string): [approvalTransaction, createCampaignTransaction];
|
15
|
+
static initiateSafePayload(distributionChainId: ChainId, distributionCreator: string): safePayload;
|
16
|
+
static buildPayload(query: CampaignPayloadInputModel, initialCampaignPayload?: safePayload | null): safePayload;
|
17
|
+
static buildProgramPayload(query: ProgramPayloadInputModel): safePayload | null;
|
18
|
+
static buildProgramPayloadWithAmounts(query: ProgramPayloadInputModel, body: CampaignAmountsInputModel): safePayload | null;
|
12
19
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ChainId, NULL_ADDRESS, NULL_ROOT, buildCampaignPayload, encodeForwarderData, registry, } from "@sdk";
|
1
|
+
import { CampaignTypeConfigResourceMapping, ChainId, NULL_ADDRESS, NULL_ROOT, buildCampaignPayload, encodeForwarderData, registry, } from "@sdk";
|
2
2
|
import _ from "lodash";
|
3
3
|
import { safeTemplate, } from "./programPayload.model";
|
4
4
|
import { MerklInterfaceCampaigns, zkSyncCampaignAmounts } from "./programPayload.repository";
|
@@ -36,52 +36,77 @@ export class ProgramPayloadService {
|
|
36
36
|
const args = buildCampaignPayload(ProgramPayloadService.buildConfig(query), distributionChainId).args;
|
37
37
|
return { args };
|
38
38
|
}
|
39
|
+
static async buildPayloadFromConfig(config) {
|
40
|
+
const campaignType = config.campaignType;
|
41
|
+
const rewardToken = config.rewardToken;
|
42
|
+
class CampaignConfig extends CampaignTypeConfigResourceMapping[campaignType] {
|
43
|
+
}
|
44
|
+
const parsedConfig = CampaignConfig.hydrate(config, {
|
45
|
+
strategy: "exposeAll",
|
46
|
+
excludeExtraneousValues: true,
|
47
|
+
});
|
48
|
+
parsedConfig.hooks = config.hooks.map(hook => hook);
|
49
|
+
const nonEncodedConfig = { ...parsedConfig };
|
50
|
+
if ("forwarders" in parsedConfig) {
|
51
|
+
parsedConfig.forwarders = config?.forwarders
|
52
|
+
? config.forwarders.map(forwarder => encodeForwarderData(forwarder))
|
53
|
+
: [];
|
54
|
+
}
|
55
|
+
const distributionChainId = config.distributionChainId ? config.distributionChainId : ChainId.MAINNET;
|
56
|
+
const registryInitialized = registry(distributionChainId);
|
57
|
+
const distributionCreator = registryInitialized?.Merkl?.DistributionCreator ?? NULL_ADDRESS;
|
58
|
+
// Small hack to avoid the need to parse the config again
|
59
|
+
const args = buildCampaignPayload(parsedConfig, distributionChainId).args;
|
60
|
+
const safePayload = ProgramPayloadService.initiateSafePayload(distributionChainId, distributionCreator);
|
61
|
+
const transactions = ProgramPayloadService.createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator ?? NULL_ADDRESS);
|
62
|
+
safePayload.transactions.push(...transactions);
|
63
|
+
return { safePayload, nonEncodedConfig };
|
64
|
+
}
|
65
|
+
static createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator) {
|
66
|
+
const safePayload = _.cloneDeep(safeTemplate);
|
67
|
+
safePayload.chainId = distributionChainId.toString();
|
68
|
+
safePayload.createdAt = Math.floor(Date.now() / 1000);
|
69
|
+
safePayload.transactions[0].to = rewardToken;
|
70
|
+
safePayload.transactions[0].contractInputsValues = {
|
71
|
+
amount: args?.amount.toString(),
|
72
|
+
spender: distributionCreator ? distributionCreator : NULL_ADDRESS,
|
73
|
+
};
|
74
|
+
safePayload.transactions[2].to = distributionCreator ? distributionCreator : NULL_ADDRESS;
|
75
|
+
safePayload.transactions[2].contractInputsValues = {
|
76
|
+
newCampaign: JSON.stringify([
|
77
|
+
NULL_ROOT,
|
78
|
+
NULL_ADDRESS,
|
79
|
+
args?.rewardToken,
|
80
|
+
args?.amount,
|
81
|
+
args?.campaignType,
|
82
|
+
args?.startTimestamp,
|
83
|
+
args?.duration,
|
84
|
+
args?.campaignData,
|
85
|
+
]),
|
86
|
+
};
|
87
|
+
return [safePayload.transactions[0], safePayload.transactions[2]];
|
88
|
+
}
|
89
|
+
static initiateSafePayload(distributionChainId, distributionCreator) {
|
90
|
+
const safePayload = _.cloneDeep(safeTemplate);
|
91
|
+
safePayload.chainId = distributionChainId.toString();
|
92
|
+
safePayload.createdAt = Math.floor(Date.now() / 1000);
|
93
|
+
safePayload.transactions[1].to = distributionCreator;
|
94
|
+
safePayload.transactions = [safePayload.transactions[1]];
|
95
|
+
return safePayload;
|
96
|
+
}
|
39
97
|
static buildPayload(query, initialCampaignPayload = null) {
|
40
98
|
const rewardToken = query.rewardToken;
|
41
99
|
const distributionChainId = query.distributionChainId ? query.distributionChainId : ChainId.MAINNET;
|
42
100
|
const registryInitialized = registry(distributionChainId);
|
43
|
-
const distributionCreator = registryInitialized?.Merkl?.DistributionCreator;
|
44
|
-
function aggregateConfig(query) {
|
45
|
-
return ProgramPayloadService.buildConfig(query);
|
46
|
-
}
|
47
|
-
function createSafePayloadForCampaign(args) {
|
48
|
-
const safePayload = _.cloneDeep(safeTemplate);
|
49
|
-
safePayload.chainId = distributionChainId.toString();
|
50
|
-
safePayload.createdAt = Math.floor(Date.now() / 1000);
|
51
|
-
safePayload.transactions[0].to = rewardToken;
|
52
|
-
safePayload.transactions[0].contractInputsValues = {
|
53
|
-
amount: args?.amount.toString(),
|
54
|
-
spender: distributionCreator ? distributionCreator : NULL_ADDRESS,
|
55
|
-
};
|
56
|
-
safePayload.transactions[2].to = distributionCreator ? distributionCreator : NULL_ADDRESS;
|
57
|
-
safePayload.transactions[2].contractInputsValues = {
|
58
|
-
newCampaign: JSON.stringify([
|
59
|
-
NULL_ROOT,
|
60
|
-
NULL_ADDRESS,
|
61
|
-
args?.rewardToken,
|
62
|
-
args?.amount,
|
63
|
-
args?.campaignType,
|
64
|
-
args?.startTimestamp,
|
65
|
-
args?.duration,
|
66
|
-
args?.campaignData,
|
67
|
-
]),
|
68
|
-
};
|
69
|
-
return [safePayload.transactions[0], safePayload.transactions[2]];
|
70
|
-
}
|
71
|
-
function initiateSafePayload() {
|
72
|
-
const safePayload = JSON.parse(JSON.stringify(safeTemplate));
|
73
|
-
safePayload.chainId = distributionChainId.toString();
|
74
|
-
safePayload.createdAt = Math.floor(Date.now() / 1000);
|
75
|
-
safePayload.transactions[1].to = distributionCreator;
|
76
|
-
safePayload.transactions = [safePayload.transactions[1]];
|
77
|
-
return safePayload;
|
78
|
-
}
|
101
|
+
const distributionCreator = registryInitialized?.Merkl?.DistributionCreator ?? NULL_ADDRESS;
|
79
102
|
function generatePayloadFile(query) {
|
80
|
-
const args = buildCampaignPayload(
|
81
|
-
const safePayload = createSafePayloadForCampaign(args);
|
103
|
+
const args = buildCampaignPayload(ProgramPayloadService.buildConfig(query), distributionChainId).args;
|
104
|
+
const safePayload = ProgramPayloadService.createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator);
|
82
105
|
return safePayload;
|
83
106
|
}
|
84
|
-
const campaignPayloads = initialCampaignPayload === null
|
107
|
+
const campaignPayloads = initialCampaignPayload === null
|
108
|
+
? ProgramPayloadService.initiateSafePayload(distributionChainId, distributionCreator)
|
109
|
+
: initialCampaignPayload;
|
85
110
|
const transactions = generatePayloadFile(query);
|
86
111
|
campaignPayloads.transactions.push(...transactions);
|
87
112
|
return campaignPayloads;
|
@@ -556,6 +556,80 @@ export declare const v4: Elysia<"/v4", false, {
|
|
556
556
|
};
|
557
557
|
};
|
558
558
|
};
|
559
|
+
} & {
|
560
|
+
opportunities: {
|
561
|
+
aggregate: {
|
562
|
+
max: {
|
563
|
+
":field": {
|
564
|
+
get: {
|
565
|
+
body: unknown;
|
566
|
+
params: {
|
567
|
+
field: never;
|
568
|
+
};
|
569
|
+
query: {
|
570
|
+
sort?: string | undefined;
|
571
|
+
name?: string | undefined;
|
572
|
+
tokens?: string | undefined;
|
573
|
+
status?: string | undefined;
|
574
|
+
items?: number | undefined;
|
575
|
+
tags?: string | undefined;
|
576
|
+
page?: number | undefined;
|
577
|
+
chainId?: string | undefined;
|
578
|
+
action?: string | undefined;
|
579
|
+
creatorAddress?: string | undefined;
|
580
|
+
mainProtocolId?: string | undefined;
|
581
|
+
order?: string | undefined;
|
582
|
+
test?: boolean | undefined;
|
583
|
+
minimumTvl?: number | undefined;
|
584
|
+
};
|
585
|
+
headers: unknown;
|
586
|
+
response: {
|
587
|
+
200: {
|
588
|
+
max: string;
|
589
|
+
};
|
590
|
+
};
|
591
|
+
};
|
592
|
+
};
|
593
|
+
};
|
594
|
+
};
|
595
|
+
};
|
596
|
+
} & {
|
597
|
+
opportunities: {
|
598
|
+
aggregate: {
|
599
|
+
min: {
|
600
|
+
":field": {
|
601
|
+
get: {
|
602
|
+
body: unknown;
|
603
|
+
params: {
|
604
|
+
field: never;
|
605
|
+
};
|
606
|
+
query: {
|
607
|
+
sort?: string | undefined;
|
608
|
+
name?: string | undefined;
|
609
|
+
tokens?: string | undefined;
|
610
|
+
status?: string | undefined;
|
611
|
+
items?: number | undefined;
|
612
|
+
tags?: string | undefined;
|
613
|
+
page?: number | undefined;
|
614
|
+
chainId?: string | undefined;
|
615
|
+
action?: string | undefined;
|
616
|
+
creatorAddress?: string | undefined;
|
617
|
+
mainProtocolId?: string | undefined;
|
618
|
+
order?: string | undefined;
|
619
|
+
test?: boolean | undefined;
|
620
|
+
minimumTvl?: number | undefined;
|
621
|
+
};
|
622
|
+
headers: unknown;
|
623
|
+
response: {
|
624
|
+
200: {
|
625
|
+
min: string;
|
626
|
+
};
|
627
|
+
};
|
628
|
+
};
|
629
|
+
};
|
630
|
+
};
|
631
|
+
};
|
632
|
+
};
|
559
633
|
} & {
|
560
634
|
opportunities: {
|
561
635
|
":id": {
|
@@ -2685,8 +2759,16 @@ export declare const v4: Elysia<"/v4", false, {
|
|
2685
2759
|
};
|
2686
2760
|
headers: unknown;
|
2687
2761
|
response: {
|
2688
|
-
|
2689
|
-
|
2762
|
+
200: {
|
2763
|
+
version: string;
|
2764
|
+
chainId: string;
|
2765
|
+
createdAt: number;
|
2766
|
+
meta: {
|
2767
|
+
name: string;
|
2768
|
+
txBuilderVersion: string;
|
2769
|
+
};
|
2770
|
+
transactions: import("./programPayload").transaction[];
|
2771
|
+
};
|
2690
2772
|
};
|
2691
2773
|
};
|
2692
2774
|
};
|
@@ -2757,8 +2839,16 @@ export declare const v4: Elysia<"/v4", false, {
|
|
2757
2839
|
};
|
2758
2840
|
headers: unknown;
|
2759
2841
|
response: {
|
2760
|
-
|
2761
|
-
|
2842
|
+
200: {
|
2843
|
+
version: string;
|
2844
|
+
chainId: string;
|
2845
|
+
createdAt: number;
|
2846
|
+
meta: {
|
2847
|
+
name: string;
|
2848
|
+
txBuilderVersion: string;
|
2849
|
+
};
|
2850
|
+
transactions: import("./programPayload").transaction[];
|
2851
|
+
} | null;
|
2762
2852
|
};
|
2763
2853
|
};
|
2764
2854
|
};
|
@@ -2783,8 +2873,69 @@ export declare const v4: Elysia<"/v4", false, {
|
|
2783
2873
|
};
|
2784
2874
|
headers: unknown;
|
2785
2875
|
response: {
|
2786
|
-
|
2787
|
-
|
2876
|
+
200: {
|
2877
|
+
version: string;
|
2878
|
+
chainId: string;
|
2879
|
+
createdAt: number;
|
2880
|
+
meta: {
|
2881
|
+
name: string;
|
2882
|
+
txBuilderVersion: string;
|
2883
|
+
};
|
2884
|
+
transactions: import("./programPayload").transaction[];
|
2885
|
+
} | null;
|
2886
|
+
};
|
2887
|
+
};
|
2888
|
+
};
|
2889
|
+
};
|
2890
|
+
};
|
2891
|
+
} & {
|
2892
|
+
"program-payload": {
|
2893
|
+
payload: {
|
2894
|
+
"from-config": {
|
2895
|
+
post: {
|
2896
|
+
body: {
|
2897
|
+
url?: string | undefined;
|
2898
|
+
endTimestamp?: number | undefined;
|
2899
|
+
poolAddress?: string | undefined;
|
2900
|
+
marketId?: string | undefined;
|
2901
|
+
strategy?: string | undefined;
|
2902
|
+
poolId?: string | undefined;
|
2903
|
+
contract?: string | undefined;
|
2904
|
+
forwarders?: {}[] | undefined;
|
2905
|
+
targetToken?: string | undefined;
|
2906
|
+
isOutOfRangeIncentivized?: boolean | undefined;
|
2907
|
+
weightFees?: number | undefined;
|
2908
|
+
weightToken0?: number | undefined;
|
2909
|
+
weightToken1?: number | undefined;
|
2910
|
+
usesBlockNumber?: boolean | undefined;
|
2911
|
+
snapshotTimestamp?: number | undefined;
|
2912
|
+
snapshotBlockNumber?: number | undefined;
|
2913
|
+
jsonUrl?: string | undefined;
|
2914
|
+
subCampaignType?: number | undefined;
|
2915
|
+
repository?: string | undefined;
|
2916
|
+
capInUSD?: string | undefined;
|
2917
|
+
compFork?: number | undefined;
|
2918
|
+
evkAddress?: string | undefined;
|
2919
|
+
collateralAddress?: string | undefined;
|
2920
|
+
hooks: {}[];
|
2921
|
+
creator: string;
|
2922
|
+
startTimestamp: number;
|
2923
|
+
computeChainId: number;
|
2924
|
+
distributionChainId: number;
|
2925
|
+
amount: string;
|
2926
|
+
blacklist: string[];
|
2927
|
+
rewardToken: string;
|
2928
|
+
campaignType: number;
|
2929
|
+
whitelist: string[];
|
2930
|
+
};
|
2931
|
+
params: {};
|
2932
|
+
query: unknown;
|
2933
|
+
headers: unknown;
|
2934
|
+
response: {
|
2935
|
+
200: {
|
2936
|
+
safePayload: import("./programPayload").safePayload;
|
2937
|
+
nonEncodedConfig: any;
|
2938
|
+
};
|
2788
2939
|
};
|
2789
2940
|
};
|
2790
2941
|
};
|