@merkl/api 1.0.97 → 1.0.99

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.
@@ -1,4 +1,7 @@
1
1
  import { type CampaignParameters, Campaign as CampaignType, ChainId, type MerklChainId } from "@angleprotocol/sdk/ts";
2
+ import type { AprRecord } from "../../../modules/v4/apr/apr.model";
3
+ import type { DailyRewardsRecord } from "../../../modules/v4/reward/reward.model";
4
+ import type { TvlRecord } from "../../../modules/v4/tvl/tvl.model";
2
5
  export declare class DynamicDataService {
3
6
  /**
4
7
  * @notice Updates all records for opportunities associated to the given campaigns
@@ -6,7 +9,17 @@ export declare class DynamicDataService {
6
9
  * @dev The list must ONLY contain campaigns of the same type and the same computeChainId
7
10
  */
8
11
  static checkValidUpdate(opportunityId: string, newApr: number): Promise<boolean>;
9
- static update(chainId: ChainId, type: CampaignType, campaigns: CampaignParameters<CampaignType>[], dryRun?: boolean): Promise<unknown[]>;
12
+ static update(chainId: ChainId, type: CampaignType, campaigns: CampaignParameters<CampaignType>[], dryRun?: boolean): Promise<{
13
+ campaignId: string;
14
+ apr: AprRecord["model"];
15
+ tvl: TvlRecord["model"];
16
+ dailyRewards: DailyRewardsRecord["model"];
17
+ }[] | {
18
+ opportunityId: string;
19
+ apr: AprRecord["model"];
20
+ tvl: TvlRecord["model"];
21
+ dailyRewards: DailyRewardsRecord["model"];
22
+ }[]>;
10
23
  static modifyCampaignAPRWithHooks<C extends CampaignType>(campaignDailyValue: number, aprCampaignValue: number, campaign: CampaignParameters<C>): Promise<number>;
11
24
  /**
12
25
  * @dev Recursive function to handle errors in fetching dynamic data
@@ -90,14 +90,101 @@ export declare const PayloadController: Elysia<"/payload", {
90
90
  200: {
91
91
  message: string;
92
92
  name: string;
93
- args?: undefined;
94
- parsedCampaign?: undefined;
95
- payload?: undefined;
93
+ solidity?: undefined;
94
+ campaign?: undefined;
95
+ opportunity?: undefined;
96
+ tvl?: undefined;
96
97
  fee?: undefined;
97
98
  } | {
98
- args: import("@angleprotocol/sdk/ts").OnChainCampaignDto;
99
- parsedCampaign: import("@angleprotocol/sdk/ts").M0Campaign | import("@angleprotocol/sdk/ts").AaveCampaign | import("@angleprotocol/sdk/ts").EigenLayerCampaign | import("@angleprotocol/sdk/ts").ERC20LogCampaign | import("@angleprotocol/sdk/ts").ERC20FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseLogCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseFixAPRCampaign | import("@angleprotocol/sdk/ts").EulerCampaign | import("@angleprotocol/sdk/ts").EventBasedCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogFixCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyFixAPRCampaign | import("@angleprotocol/sdk/ts").TargetTokenCampaign | import("@angleprotocol/sdk/ts").InvalidCampaign | import("@angleprotocol/sdk/ts").ERC20Campaign | import("@angleprotocol/sdk/ts").CLAMMCampaign | import("@angleprotocol/sdk/ts").ERC20_SNAPSHOTCampaign | import("@angleprotocol/sdk/ts").JSON_AIRDROPCampaign | import("@angleprotocol/sdk/ts").SILOCampaign | import("@angleprotocol/sdk/ts").RadiantCampaign | import("@angleprotocol/sdk/ts").DolomiteCampaign | import("@angleprotocol/sdk/ts").BadgerCampaign | import("@angleprotocol/sdk/ts").CompoundCampaign | import("@angleprotocol/sdk/ts").AjnaCampaign | import("@angleprotocol/sdk/ts").UniswapV4Campaign | import("@angleprotocol/sdk/ts").EkuboCampaign | import("@angleprotocol/sdk/ts").IonCampaign | import("@angleprotocol/sdk/ts").VestCampaign | import("@angleprotocol/sdk/ts").SyncswapVaultCampaign | import("@angleprotocol/sdk/ts").AmbientCampaign | import("@angleprotocol/sdk/ts").EncompassingCampaign | import("@angleprotocol/sdk/ts").MaverickBPCampaign | import("@angleprotocol/sdk/ts").ERC6909Campaign | import("@angleprotocol/sdk/ts").ERC6909FixAPRCampaign | import("@angleprotocol/sdk/ts").CompoundV3Campaign | import("@angleprotocol/sdk/ts").CompoundV3FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC721Campaign | import("@angleprotocol/sdk/ts").ERC721FixAPRCampaign | import("@angleprotocol/sdk/ts").MultiLogCampaign | import("@angleprotocol/sdk/ts").LockerCampaign | import("@angleprotocol/sdk/ts").ConvexCampaign | import("@angleprotocol/sdk/ts").StakeDAOCampaign | import("@angleprotocol/sdk/ts").MappingCampaign | import("@angleprotocol/sdk/ts").FraxLendCampaign | import("@angleprotocol/sdk/ts").FraxLendFixAPRCampaign | import("@angleprotocol/sdk/ts").SymbioticVaultCampaign | import("@angleprotocol/sdk/ts").EkuboPositionManagerCampaign | import("@angleprotocol/sdk/ts").MorphoCampaign<import("@angleprotocol/sdk/ts").MorphoSubCampaignType>;
100
- payload: string;
99
+ solidity: {
100
+ args: import("@angleprotocol/sdk/ts").OnChainCampaignDto;
101
+ payload: string;
102
+ };
103
+ campaign: import("@angleprotocol/sdk/ts").M0Campaign | import("@angleprotocol/sdk/ts").AaveCampaign | import("@angleprotocol/sdk/ts").EigenLayerCampaign | import("@angleprotocol/sdk/ts").ERC20LogCampaign | import("@angleprotocol/sdk/ts").ERC20FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseLogCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseFixAPRCampaign | import("@angleprotocol/sdk/ts").EulerCampaign | import("@angleprotocol/sdk/ts").EventBasedCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogFixCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyFixAPRCampaign | import("@angleprotocol/sdk/ts").TargetTokenCampaign | import("@angleprotocol/sdk/ts").ERC20Campaign | import("@angleprotocol/sdk/ts").CLAMMCampaign | import("@angleprotocol/sdk/ts").ERC20_SNAPSHOTCampaign | import("@angleprotocol/sdk/ts").JSON_AIRDROPCampaign | import("@angleprotocol/sdk/ts").SILOCampaign | import("@angleprotocol/sdk/ts").RadiantCampaign | import("@angleprotocol/sdk/ts").DolomiteCampaign | import("@angleprotocol/sdk/ts").BadgerCampaign | import("@angleprotocol/sdk/ts").CompoundCampaign | import("@angleprotocol/sdk/ts").AjnaCampaign | import("@angleprotocol/sdk/ts").UniswapV4Campaign | import("@angleprotocol/sdk/ts").EkuboCampaign | import("@angleprotocol/sdk/ts").IonCampaign | import("@angleprotocol/sdk/ts").VestCampaign | import("@angleprotocol/sdk/ts").SyncswapVaultCampaign | import("@angleprotocol/sdk/ts").AmbientCampaign | import("@angleprotocol/sdk/ts").EncompassingCampaign | import("@angleprotocol/sdk/ts").MaverickBPCampaign | import("@angleprotocol/sdk/ts").ERC6909Campaign | import("@angleprotocol/sdk/ts").ERC6909FixAPRCampaign | import("@angleprotocol/sdk/ts").CompoundV3Campaign | import("@angleprotocol/sdk/ts").CompoundV3FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC721Campaign | import("@angleprotocol/sdk/ts").ERC721FixAPRCampaign | import("@angleprotocol/sdk/ts").MultiLogCampaign | import("@angleprotocol/sdk/ts").LockerCampaign | import("@angleprotocol/sdk/ts").ConvexCampaign | import("@angleprotocol/sdk/ts").StakeDAOCampaign | import("@angleprotocol/sdk/ts").MappingCampaign | import("@angleprotocol/sdk/ts").FraxLendCampaign | import("@angleprotocol/sdk/ts").FraxLendFixAPRCampaign | import("@angleprotocol/sdk/ts").SymbioticVaultCampaign | import("@angleprotocol/sdk/ts").EkuboPositionManagerCampaign | import("@angleprotocol/sdk/ts").MorphoCampaign<import("@angleprotocol/sdk/ts").MorphoSubCampaignType>;
104
+ opportunity: Omit<import("../campaign/campaign.model").CampaignWithParams, "manualOverrides"> | {
105
+ id: string;
106
+ chainId: number;
107
+ type: string;
108
+ identifier: string;
109
+ name: string;
110
+ status: "PAST" | "LIVE" | "SOON";
111
+ action: OpportunityAction;
112
+ tokens: ({
113
+ symbol: string;
114
+ name: string | null;
115
+ decimals: number;
116
+ address: string;
117
+ id: string;
118
+ chainId: number;
119
+ type: import("@package/databases").TokenType;
120
+ icon: string;
121
+ isNative: boolean;
122
+ isTest: boolean;
123
+ verified: boolean;
124
+ } & {
125
+ price?: number | null | undefined;
126
+ isTokenWrapper?: boolean | undefined;
127
+ tokenWrapperAddress?: string | undefined;
128
+ })[];
129
+ mainProtocol: "splice" | "curve" | "morpho" | "compound" | "silo" | "reserve" | "gamma" | "vest" | "zero" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quickswap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "pinto" | "mimswap" | "ichi" | "ekubo" | "radiant" | "aave" | "fraxlend" | "ironclad" | "euler" | "gearbox" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "zerolend" | "lnd" | "dlend" | "hyperdrive" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "hypurrfi" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
130
+ description: string;
131
+ howToSteps: string[];
132
+ depositUrl: string | undefined;
133
+ explorerAddress: string | undefined;
134
+ tags: string[];
135
+ } | ({
136
+ Tokens: {
137
+ symbol: string;
138
+ name: string | null;
139
+ decimals: number;
140
+ price: number | null;
141
+ address: string;
142
+ id: string;
143
+ chainId: number;
144
+ type: import("@package/databases").TokenType;
145
+ icon: string;
146
+ isNative: boolean;
147
+ isTest: boolean;
148
+ verified: boolean;
149
+ displaySymbol: string;
150
+ }[];
151
+ Protocols: {
152
+ name: string;
153
+ description: string;
154
+ id: string;
155
+ url: string;
156
+ icon: string;
157
+ tags: string[];
158
+ }[];
159
+ } & {
160
+ name: string;
161
+ apr: number;
162
+ tvl: number;
163
+ description: string;
164
+ id: string;
165
+ status: import("@package/databases").Status;
166
+ chainId: number;
167
+ action: import("@package/databases").OpportunityAction;
168
+ type: string;
169
+ depositUrl: string | null;
170
+ manualOverrides: import("@package/databases").OpportunityManualOverride[];
171
+ identifier: string;
172
+ howToSteps: string[];
173
+ explorerAddress: string | null;
174
+ mainProtocolId: string | null;
175
+ dailyRewards: number;
176
+ tags: string[];
177
+ lastCampaignCreatedAt: Date;
178
+ });
179
+ tvl: {
180
+ timestamp: bigint;
181
+ total: number;
182
+ breakdowns: ({
183
+ value: number;
184
+ type: import("@package/databases").TvlType;
185
+ identifier: string;
186
+ } & {})[];
187
+ } & {};
101
188
  fee: string | undefined;
102
189
  message?: undefined;
103
190
  name?: undefined;
@@ -1,4 +1,4 @@
1
- import { Campaign, type ChainId, type campaignConfig } from "@angleprotocol/sdk/ts";
1
+ import { Campaign as CampaignType, type ChainId, type campaignConfig } from "@angleprotocol/sdk/ts";
2
2
  import type { CampaignPayloadInputModel, SinglePayloadInputDtoModel } from "./payload.model";
3
3
  export declare class PayloadService {
4
4
  static buildConfigTemplate(params: {
@@ -6,18 +6,105 @@ export declare class PayloadService {
6
6
  }): {
7
7
  [key: string]: string;
8
8
  };
9
- static buildConfig(query: CampaignPayloadInputModel): campaignConfig<Campaign>;
9
+ static buildConfig(query: CampaignPayloadInputModel): campaignConfig<CampaignType>;
10
10
  static buildPayloadFromConfig(config: SinglePayloadInputDtoModel): Promise<{
11
11
  message: string;
12
12
  name: string;
13
- args?: undefined;
14
- parsedCampaign?: undefined;
15
- payload?: undefined;
13
+ solidity?: undefined;
14
+ campaign?: undefined;
15
+ opportunity?: undefined;
16
+ tvl?: undefined;
16
17
  fee?: undefined;
17
18
  } | {
18
- args: import("@angleprotocol/sdk/ts").OnChainCampaignDto;
19
- parsedCampaign: import("@angleprotocol/sdk/ts").M0Campaign | import("@angleprotocol/sdk/ts").AaveCampaign | import("@angleprotocol/sdk/ts").EigenLayerCampaign | import("@angleprotocol/sdk/ts").ERC20LogCampaign | import("@angleprotocol/sdk/ts").ERC20FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseLogCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseFixAPRCampaign | import("@angleprotocol/sdk/ts").EulerCampaign | import("@angleprotocol/sdk/ts").EventBasedCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogFixCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyFixAPRCampaign | import("@angleprotocol/sdk/ts").TargetTokenCampaign | import("@angleprotocol/sdk/ts").InvalidCampaign | import("@angleprotocol/sdk/ts").ERC20Campaign | import("@angleprotocol/sdk/ts").CLAMMCampaign | import("@angleprotocol/sdk/ts").ERC20_SNAPSHOTCampaign | import("@angleprotocol/sdk/ts").JSON_AIRDROPCampaign | import("@angleprotocol/sdk/ts").SILOCampaign | import("@angleprotocol/sdk/ts").RadiantCampaign | import("@angleprotocol/sdk/ts").DolomiteCampaign | import("@angleprotocol/sdk/ts").BadgerCampaign | import("@angleprotocol/sdk/ts").CompoundCampaign | import("@angleprotocol/sdk/ts").AjnaCampaign | import("@angleprotocol/sdk/ts").UniswapV4Campaign | import("@angleprotocol/sdk/ts").EkuboCampaign | import("@angleprotocol/sdk/ts").IonCampaign | import("@angleprotocol/sdk/ts").VestCampaign | import("@angleprotocol/sdk/ts").SyncswapVaultCampaign | import("@angleprotocol/sdk/ts").AmbientCampaign | import("@angleprotocol/sdk/ts").EncompassingCampaign | import("@angleprotocol/sdk/ts").MaverickBPCampaign | import("@angleprotocol/sdk/ts").ERC6909Campaign | import("@angleprotocol/sdk/ts").ERC6909FixAPRCampaign | import("@angleprotocol/sdk/ts").CompoundV3Campaign | import("@angleprotocol/sdk/ts").CompoundV3FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC721Campaign | import("@angleprotocol/sdk/ts").ERC721FixAPRCampaign | import("@angleprotocol/sdk/ts").MultiLogCampaign | import("@angleprotocol/sdk/ts").LockerCampaign | import("@angleprotocol/sdk/ts").ConvexCampaign | import("@angleprotocol/sdk/ts").StakeDAOCampaign | import("@angleprotocol/sdk/ts").MappingCampaign | import("@angleprotocol/sdk/ts").FraxLendCampaign | import("@angleprotocol/sdk/ts").FraxLendFixAPRCampaign | import("@angleprotocol/sdk/ts").SymbioticVaultCampaign | import("@angleprotocol/sdk/ts").EkuboPositionManagerCampaign | import("@angleprotocol/sdk/ts").MorphoCampaign<import("@angleprotocol/sdk/ts").MorphoSubCampaignType>;
20
- payload: string;
19
+ solidity: {
20
+ args: import("@angleprotocol/sdk/ts").OnChainCampaignDto;
21
+ payload: string;
22
+ };
23
+ campaign: import("@angleprotocol/sdk/ts").M0Campaign | import("@angleprotocol/sdk/ts").AaveCampaign | import("@angleprotocol/sdk/ts").EigenLayerCampaign | import("@angleprotocol/sdk/ts").ERC20LogCampaign | import("@angleprotocol/sdk/ts").ERC20FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseLogCampaign | import("@angleprotocol/sdk/ts").ERC20RebaseFixAPRCampaign | import("@angleprotocol/sdk/ts").EulerCampaign | import("@angleprotocol/sdk/ts").EventBasedCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogCampaign | import("@angleprotocol/sdk/ts").HyperDriveLogFixCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowCampaign | import("@angleprotocol/sdk/ts").MorphoBorrowFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralCampaign | import("@angleprotocol/sdk/ts").MorphoCollateralFixAPRCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyCampaign | import("@angleprotocol/sdk/ts").MorphoSupplyFixAPRCampaign | import("@angleprotocol/sdk/ts").TargetTokenCampaign | import("@angleprotocol/sdk/ts").ERC20Campaign | import("@angleprotocol/sdk/ts").CLAMMCampaign | import("@angleprotocol/sdk/ts").ERC20_SNAPSHOTCampaign | import("@angleprotocol/sdk/ts").JSON_AIRDROPCampaign | import("@angleprotocol/sdk/ts").SILOCampaign | import("@angleprotocol/sdk/ts").RadiantCampaign | import("@angleprotocol/sdk/ts").DolomiteCampaign | import("@angleprotocol/sdk/ts").BadgerCampaign | import("@angleprotocol/sdk/ts").CompoundCampaign | import("@angleprotocol/sdk/ts").AjnaCampaign | import("@angleprotocol/sdk/ts").UniswapV4Campaign | import("@angleprotocol/sdk/ts").EkuboCampaign | import("@angleprotocol/sdk/ts").IonCampaign | import("@angleprotocol/sdk/ts").VestCampaign | import("@angleprotocol/sdk/ts").SyncswapVaultCampaign | import("@angleprotocol/sdk/ts").AmbientCampaign | import("@angleprotocol/sdk/ts").EncompassingCampaign | import("@angleprotocol/sdk/ts").MaverickBPCampaign | import("@angleprotocol/sdk/ts").ERC6909Campaign | import("@angleprotocol/sdk/ts").ERC6909FixAPRCampaign | import("@angleprotocol/sdk/ts").CompoundV3Campaign | import("@angleprotocol/sdk/ts").CompoundV3FixAPRCampaign | import("@angleprotocol/sdk/ts").ERC721Campaign | import("@angleprotocol/sdk/ts").ERC721FixAPRCampaign | import("@angleprotocol/sdk/ts").MultiLogCampaign | import("@angleprotocol/sdk/ts").LockerCampaign | import("@angleprotocol/sdk/ts").ConvexCampaign | import("@angleprotocol/sdk/ts").StakeDAOCampaign | import("@angleprotocol/sdk/ts").MappingCampaign | import("@angleprotocol/sdk/ts").FraxLendCampaign | import("@angleprotocol/sdk/ts").FraxLendFixAPRCampaign | import("@angleprotocol/sdk/ts").SymbioticVaultCampaign | import("@angleprotocol/sdk/ts").EkuboPositionManagerCampaign | import("@angleprotocol/sdk/ts").MorphoCampaign<import("@angleprotocol/sdk/ts").MorphoSubCampaignType>;
24
+ opportunity: Omit<import("../campaign/campaign.model").CampaignWithParams, "manualOverrides"> | {
25
+ id: string;
26
+ chainId: number;
27
+ type: string;
28
+ identifier: string;
29
+ name: string;
30
+ status: "PAST" | "LIVE" | "SOON";
31
+ action: OpportunityAction;
32
+ tokens: ({
33
+ symbol: string;
34
+ name: string | null;
35
+ decimals: number;
36
+ address: string;
37
+ id: string;
38
+ chainId: number;
39
+ type: import("@package/databases").TokenType;
40
+ icon: string;
41
+ isNative: boolean;
42
+ isTest: boolean;
43
+ verified: boolean;
44
+ } & {
45
+ price?: number | null | undefined;
46
+ isTokenWrapper?: boolean | undefined;
47
+ tokenWrapperAddress?: string | undefined;
48
+ })[];
49
+ mainProtocol: "splice" | "curve" | "morpho" | "compound" | "silo" | "reserve" | "gamma" | "vest" | "zero" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quickswap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "pinto" | "mimswap" | "ichi" | "ekubo" | "radiant" | "aave" | "fraxlend" | "ironclad" | "euler" | "gearbox" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "zerolend" | "lnd" | "dlend" | "hyperdrive" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "hypurrfi" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
50
+ description: string;
51
+ howToSteps: string[];
52
+ depositUrl: string | undefined;
53
+ explorerAddress: string | undefined;
54
+ tags: string[];
55
+ } | ({
56
+ Tokens: {
57
+ symbol: string;
58
+ name: string | null;
59
+ decimals: number;
60
+ price: number | null;
61
+ address: string;
62
+ id: string;
63
+ chainId: number;
64
+ type: import("@package/databases").TokenType;
65
+ icon: string;
66
+ isNative: boolean;
67
+ isTest: boolean;
68
+ verified: boolean;
69
+ displaySymbol: string;
70
+ }[];
71
+ Protocols: {
72
+ name: string;
73
+ description: string;
74
+ id: string;
75
+ url: string;
76
+ icon: string;
77
+ tags: string[];
78
+ }[];
79
+ } & {
80
+ name: string;
81
+ apr: number;
82
+ tvl: number;
83
+ description: string;
84
+ id: string;
85
+ status: import("@package/databases").Status;
86
+ chainId: number;
87
+ action: import("@package/databases").OpportunityAction;
88
+ type: string;
89
+ depositUrl: string | null;
90
+ manualOverrides: import("@package/databases").OpportunityManualOverride[];
91
+ identifier: string;
92
+ howToSteps: string[];
93
+ explorerAddress: string | null;
94
+ mainProtocolId: string | null;
95
+ dailyRewards: number;
96
+ tags: string[];
97
+ lastCampaignCreatedAt: Date;
98
+ });
99
+ tvl: {
100
+ timestamp: bigint;
101
+ total: number;
102
+ breakdowns: ({
103
+ value: number;
104
+ type: import("@package/databases").TvlType;
105
+ identifier: string;
106
+ } & {})[];
107
+ } & {};
21
108
  fee: string | undefined;
22
109
  message?: undefined;
23
110
  name?: undefined;