@merkl/api 0.21.20 → 0.21.22
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/drizzle/schema.d.ts +51 -0
- package/dist/database/api/.generated/drizzle/schema.js +4 -1
- package/dist/database/api/.generated/drizzle/schema.ts +4 -1
- package/dist/database/api/.generated/edge.js +7 -4
- package/dist/database/api/.generated/index-browser.js +4 -1
- package/dist/database/api/.generated/index.d.ts +128 -2
- package/dist/database/api/.generated/index.js +7 -4
- package/dist/database/api/.generated/package.json +1 -1
- package/dist/database/api/.generated/schema.prisma +8 -5
- package/dist/database/api/.generated/wasm.js +4 -1
- package/dist/src/eden/index.d.ts +24 -88
- package/dist/src/engine/deprecated/dynamicData/implementations/Clamm.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Compound.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/CompoundV3.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/ERC721.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/ERCMultiToken.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/EigenLayer.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Encompassing.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Erc20Snapshot.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/EventBased.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/EventBased.js +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Hyperdrive.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Morpho.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Radiant.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Silo.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/implementations/Vest.d.ts +1 -1
- package/dist/src/engine/deprecated/dynamicData/utils/getCompV2ForksVaults.js +1 -1
- package/dist/src/engine/implementations/Erc20/metadata.js +2 -2
- package/dist/src/engine/implementations/JsonAirdrop/metadata.d.ts +2 -2
- package/dist/src/engine/implementations/MultiLog/metadata.d.ts +1 -1
- package/dist/src/engine/implementations/MultiLog/tvl.d.ts +2 -2
- package/dist/src/engine/metadata/factory.js +1 -0
- package/dist/src/engine/tvl/factory.d.ts +4 -1
- package/dist/src/engine/tvl/factory.js +59 -6
- package/dist/src/index.d.ts +8 -34
- package/dist/src/jobs/dynamic-data.js +16 -14
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +1 -1
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +4 -1
- package/dist/src/modules/v4/campaign/campaign.test.controller.d.ts +2 -31
- package/dist/src/modules/v4/campaign/campaign.test.controller.js +0 -11
- package/dist/src/modules/v4/computedValue/computedValue.controller.d.ts +3 -0
- package/dist/src/modules/v4/computedValue/computedValue.repository.d.ts +3 -0
- package/dist/src/modules/v4/computedValue/computedValue.service.d.ts +3 -0
- package/dist/src/modules/v4/dynamicData/dynamicData.service.d.ts +0 -11
- package/dist/src/modules/v4/dynamicData/dynamicData.service.js +8 -50
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +2 -2
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +3 -3
- package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +9 -2
- package/dist/src/modules/v4/programPayload/programPayload.repository.js +50 -0
- package/dist/src/modules/v4/router.d.ts +8 -34
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/dist/src/engine/deprecated/dynamicData/factory.d.ts +0 -3
- package/dist/src/engine/deprecated/dynamicData/factory.js +0 -68
@@ -10,7 +10,7 @@ import moment from "moment";
|
|
10
10
|
* @dev important: using the most recent state save with current prices
|
11
11
|
* it's only an estimate
|
12
12
|
*/
|
13
|
-
async function computeEventBasedPoolRewardsFromMostRecentStateSave(chainId, campaignID,
|
13
|
+
async function computeEventBasedPoolRewardsFromMostRecentStateSave(chainId, campaignID, _priceCurrency, _decimalsCurrency, computeMethod) {
|
14
14
|
let stateSave;
|
15
15
|
let blockNumber;
|
16
16
|
let states = {};
|
@@ -2,6 +2,6 @@ import { Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
|
|
2
2
|
import type { DynamicDataBuilder } from "../interface";
|
3
3
|
type campaignType = Campaign.HYPERDRIVELOGPROCESSOR | Campaign.HYPERDRIVELOGFIXPROCESSOR;
|
4
4
|
export declare class HyperdriveDynamicData implements DynamicDataBuilder<campaignType> {
|
5
|
-
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<any[]>;
|
5
|
+
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<any>[]>;
|
6
6
|
}
|
7
7
|
export {};
|
@@ -4,6 +4,6 @@ import type { DynamicDataBuilder } from "../interface";
|
|
4
4
|
type campaignType = Campaign.MORPHO;
|
5
5
|
export declare const MORPHO_INTERFACE: utils.Interface;
|
6
6
|
export declare class MorphoDynamicData implements DynamicDataBuilder<campaignType> {
|
7
|
-
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<
|
7
|
+
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<Campaign.MORPHO>[]>;
|
8
8
|
}
|
9
9
|
export {};
|
@@ -2,6 +2,6 @@ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk"
|
|
2
2
|
import type { DynamicDataBuilder } from "../interface";
|
3
3
|
type campaignType = Campaign.RADIANT;
|
4
4
|
export declare class RadiantDynamicData implements DynamicDataBuilder<campaignType> {
|
5
|
-
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<
|
5
|
+
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<Campaign.RADIANT>[]>;
|
6
6
|
}
|
7
7
|
export {};
|
@@ -4,6 +4,6 @@ import type { DynamicDataBuilder } from "../interface";
|
|
4
4
|
export declare const SILO_INTERFACE: utils.Interface;
|
5
5
|
type campaignType = Campaign.SILO;
|
6
6
|
export declare class SiloDynamicData implements DynamicDataBuilder<campaignType> {
|
7
|
-
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<
|
7
|
+
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<Campaign.SILO>[]>;
|
8
8
|
}
|
9
9
|
export {};
|
@@ -4,6 +4,6 @@ export declare const VEST_TREASURY = "0x7ccF5BbeC69c790D27dA3b5398B9e0d6D6EeC9F3
|
|
4
4
|
export declare const VEST_TOKEN = "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4";
|
5
5
|
type campaignType = Campaign.VEST;
|
6
6
|
export declare class VestDynamicData implements DynamicDataBuilder<campaignType> {
|
7
|
-
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<
|
7
|
+
build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<Campaign.VEST>[]>;
|
8
8
|
}
|
9
9
|
export {};
|
@@ -25,7 +25,7 @@ async function getCompoundV2ForksVaults() {
|
|
25
25
|
const creationBlock = (await getContractCreationBlock(comptrollerAddress, providers[chainId])) ?? 0;
|
26
26
|
let logs = [];
|
27
27
|
let topic;
|
28
|
-
if (compFork === CompFork.Venus && (chainId === ChainId.ZKSYNC || chainId === ChainId.
|
28
|
+
if (compFork === CompFork.Venus && (chainId === ChainId.ZKSYNC || chainId === ChainId.UNICHAIN)) {
|
29
29
|
topic = MARKET_SUPPORTED_EVENT_HASH;
|
30
30
|
}
|
31
31
|
else if (compFork === CompFork.Enclabs) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Erc20DynamicData } from "@/engine/deprecated/dynamicData/implementations/Erc20";
|
2
2
|
import { OpportunityConvertorService } from "@/modules/v4/opportunity/opportunity.converter";
|
3
3
|
import { log } from "@/utils/logger";
|
4
4
|
import { Campaign as CampaignType } from "@sdk";
|
@@ -24,7 +24,7 @@ export class Erc20Metadata {
|
|
24
24
|
const depositUrl = params?.url;
|
25
25
|
let tokens = [{ chainId: computeChainId, address: params.targetToken }];
|
26
26
|
try {
|
27
|
-
const [dynamicData] = await
|
27
|
+
const [dynamicData] = await new Erc20DynamicData().build(computeChainId, [
|
28
28
|
{
|
29
29
|
campaignId,
|
30
30
|
rewardToken: rewardToken.address,
|
@@ -10,13 +10,13 @@ export declare class JsonAirdropMetadata implements MetadataBuilder<campaignType
|
|
10
10
|
chainId: number;
|
11
11
|
address: string;
|
12
12
|
}[];
|
13
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
13
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
14
14
|
depositUrl?: undefined;
|
15
15
|
} | {
|
16
16
|
action: "DROP";
|
17
17
|
name: string;
|
18
18
|
tokens: never[];
|
19
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
19
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
20
20
|
depositUrl: any;
|
21
21
|
}>;
|
22
22
|
static generateUrl(_computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): any;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { type Campaign as CampaignType } from "@sdk";
|
2
2
|
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
3
3
|
import type { CampaignWithParams } from "@/modules/v4/campaign/campaign.model";
|
4
|
-
type campaignType = CampaignType.MULTILOG;
|
4
|
+
type campaignType = CampaignType.MULTILOG | CampaignType.MULTILOG_DUTCH;
|
5
5
|
export declare class MultiLogMetaData implements MetadataBuilder<campaignType> {
|
6
6
|
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<import("@/engine/metadata/interface").Metadata>;
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
|
2
2
|
import { type CampaignParameters, type Campaign as CampaignType, type MerklChainId } from "@sdk";
|
3
|
-
type campaignType = CampaignType.MULTILOG;
|
3
|
+
type campaignType = CampaignType.MULTILOG | CampaignType.MULTILOG_DUTCH;
|
4
4
|
export declare class MultiLogTVLBuilder implements TVLBuilder<campaignType> {
|
5
|
-
build(_computeChainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData<
|
5
|
+
build(_computeChainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData<any>>;
|
6
6
|
}
|
7
7
|
export {};
|
@@ -68,6 +68,7 @@ const map = {
|
|
68
68
|
[Campaign.ERC721]: new Erc721Metadata(),
|
69
69
|
[Campaign.ERC721FIXAPR]: new Erc721Metadata(),
|
70
70
|
[Campaign.MULTILOG]: new MultiLogMetaData(),
|
71
|
+
[Campaign.MULTILOG_DUTCH]: new MultiLogMetaData(),
|
71
72
|
[Campaign.LOCKER]: new LockerMetadata(),
|
72
73
|
[Campaign.CONVEX]: new DefaultMetadata(), // TODO
|
73
74
|
[Campaign.STAKEDAO_CURVEVAULT]: new DefaultMetadata(), // TODO
|
@@ -1,3 +1,6 @@
|
|
1
1
|
import { Campaign } from "@sdk";
|
2
2
|
import type { TVLBuilder } from "./interface";
|
3
|
-
export declare const campaignTVLBuilderFactory: (campaignType: Campaign) => TVLBuilder<Campaign> |
|
3
|
+
export declare const campaignTVLBuilderFactory: (campaignType: Campaign) => TVLBuilder<Campaign> | {
|
4
|
+
deprecated: boolean;
|
5
|
+
build: (chainId: Campaign, campaigns: Campaign<Campaign>[]) => Promise<Campaign<Campaign>[]>;
|
6
|
+
};
|
@@ -1,34 +1,87 @@
|
|
1
1
|
import { UniswapV4TVLBuilder } from "@/engine/implementations/UniswapV4/tvl";
|
2
2
|
import { Campaign } from "@sdk";
|
3
|
+
import { BadgerDynamicData } from "../deprecated/dynamicData/implementations/Badger";
|
4
|
+
import { ClammDynamicData } from "../deprecated/dynamicData/implementations/Clamm";
|
5
|
+
import { CompoundDynamicData } from "../deprecated/dynamicData/implementations/Compound";
|
6
|
+
import { CompoundV3DynamicData } from "../deprecated/dynamicData/implementations/CompoundV3";
|
7
|
+
import { DolomiteDynamicData } from "../deprecated/dynamicData/implementations/Dolomite";
|
8
|
+
import { ERC721DynamicData } from "../deprecated/dynamicData/implementations/ERC721";
|
9
|
+
import { ERCMultiTokenDynamicData } from "../deprecated/dynamicData/implementations/ERCMultiToken";
|
10
|
+
import { EncompassingDynamicData } from "../deprecated/dynamicData/implementations/Encompassing";
|
11
|
+
import { Erc20SnapshotDynamicData } from "../deprecated/dynamicData/implementations/Erc20Snapshot";
|
12
|
+
import { EventBasedDynamicData } from "../deprecated/dynamicData/implementations/EventBased";
|
13
|
+
import { HyperdriveDynamicData } from "../deprecated/dynamicData/implementations/Hyperdrive";
|
14
|
+
import { MorphoDynamicData } from "../deprecated/dynamicData/implementations/Morpho";
|
15
|
+
import { RadiantDynamicData } from "../deprecated/dynamicData/implementations/Radiant";
|
16
|
+
import { SiloDynamicData } from "../deprecated/dynamicData/implementations/Silo";
|
17
|
+
import { VestDynamicData } from "../deprecated/dynamicData/implementations/Vest";
|
3
18
|
import { AjnaTVLBuilder } from "../implementations/Ajna/tvl";
|
4
|
-
import { AmbiantTVLBuilder } from "../implementations/Ambient/tvl";
|
5
19
|
import { EigenLayerTVLBuilder } from "../implementations/EigenLayer/tvl";
|
6
20
|
import { Erc20TVLBuilder } from "../implementations/Erc20/tvl";
|
7
21
|
import { LockerTVLBuilder } from "../implementations/Locker/tvl";
|
8
22
|
import { MultiLogTVLBuilder } from "../implementations/MultiLog/tvl";
|
23
|
+
class defaultTVLBuilder {
|
24
|
+
async build() {
|
25
|
+
return [];
|
26
|
+
}
|
27
|
+
}
|
28
|
+
function Deprecated(x) {
|
29
|
+
return {
|
30
|
+
deprecated: true,
|
31
|
+
build: x.build,
|
32
|
+
};
|
33
|
+
}
|
9
34
|
/**
|
10
35
|
* @dev TYPE SAFETY DISABLED FOR NOW AS WE DON'T HAVE ALL THE CAMPAIGNS IMPLEMENTED
|
11
36
|
*
|
12
37
|
* @dev Casts are made to enforce type safety
|
13
38
|
* @dev A type error must be thrown if a new campaign type is added and the corresponding builder is not implemented
|
14
39
|
*/
|
15
|
-
// @ts-ignore
|
16
40
|
const map = {
|
41
|
+
[Campaign.INVALID]: new defaultTVLBuilder(),
|
42
|
+
[Campaign.JSON_AIRDROP]: new defaultTVLBuilder(),
|
17
43
|
[Campaign.AJNA]: new AjnaTVLBuilder(),
|
44
|
+
[Campaign.AMBIENTPROCESSOR]: new defaultTVLBuilder(),
|
45
|
+
[Campaign.BADGER]: Deprecated(new BadgerDynamicData()),
|
46
|
+
[Campaign.CLAMM]: Deprecated(new ClammDynamicData()),
|
47
|
+
[Campaign.COMPOUND]: Deprecated(new CompoundDynamicData()),
|
48
|
+
[Campaign.COMPOUND_V3]: Deprecated(new CompoundV3DynamicData()),
|
49
|
+
[Campaign.COMPOUND_V3_FIXAPR]: Deprecated(new CompoundV3DynamicData()),
|
50
|
+
[Campaign.DOLOMITE]: Deprecated(new DolomiteDynamicData()),
|
18
51
|
[Campaign.EIGENLAYER]: new EigenLayerTVLBuilder(),
|
19
|
-
[Campaign.
|
52
|
+
[Campaign.ENCOMPASSING]: Deprecated(new EncompassingDynamicData()),
|
53
|
+
[Campaign.ERC20_SNAPSHOT]: Deprecated(new Erc20SnapshotDynamicData()),
|
54
|
+
[Campaign.EVENT_BASED]: Deprecated(new EventBasedDynamicData()),
|
55
|
+
[Campaign.HYPERDRIVELOGFIXPROCESSOR]: Deprecated(new HyperdriveDynamicData()),
|
56
|
+
[Campaign.HYPERDRIVELOGPROCESSOR]: Deprecated(new HyperdriveDynamicData()),
|
20
57
|
[Campaign.UNISWAP_V4]: new UniswapV4TVLBuilder(),
|
21
58
|
[Campaign.ERC20]: new Erc20TVLBuilder(),
|
22
59
|
[Campaign.ERC20LOGPROCESSOR]: new Erc20TVLBuilder(),
|
23
60
|
[Campaign.ERC20REBASEFIXAPR]: new Erc20TVLBuilder(),
|
61
|
+
[Campaign.ERC20REBASELOGPROCESSOR]: new Erc20TVLBuilder(),
|
24
62
|
[Campaign.ERC20_FIX_APR]: new Erc20TVLBuilder(),
|
25
63
|
[Campaign.EULER]: new Erc20TVLBuilder(),
|
64
|
+
[Campaign.MORPHO]: Deprecated(new MorphoDynamicData()),
|
65
|
+
[Campaign.RADIANT]: Deprecated(new RadiantDynamicData()),
|
66
|
+
[Campaign.SILO]: Deprecated(new SiloDynamicData()),
|
26
67
|
[Campaign.MULTILOG]: new MultiLogTVLBuilder(),
|
68
|
+
[Campaign.MULTILOG_DUTCH]: new MultiLogTVLBuilder(),
|
27
69
|
[Campaign.LOCKER]: new LockerTVLBuilder(),
|
70
|
+
[Campaign.VEST]: Deprecated(new VestDynamicData()),
|
71
|
+
[Campaign.ION]: new defaultTVLBuilder(), // TODO
|
72
|
+
[Campaign.M0]: new defaultTVLBuilder(), // TODO
|
73
|
+
[Campaign.MORPHOSUPPLY]: new defaultTVLBuilder(), // TODO
|
74
|
+
[Campaign.SYNCSWAP_VAULT]: new defaultTVLBuilder(), // TODO
|
75
|
+
[Campaign.MAVERICK_BP]: new defaultTVLBuilder(), // TODO
|
76
|
+
[Campaign.ERC6909]: Deprecated(new ERCMultiTokenDynamicData()),
|
77
|
+
[Campaign.ERC6909FIXAPR]: Deprecated(new ERCMultiTokenDynamicData()),
|
78
|
+
[Campaign.ERC1155]: Deprecated(new ERCMultiTokenDynamicData()),
|
79
|
+
[Campaign.ERC1155FIXAPR]: Deprecated(new ERCMultiTokenDynamicData()),
|
80
|
+
[Campaign.ERC721]: Deprecated(new ERC721DynamicData()),
|
81
|
+
[Campaign.ERC721FIXAPR]: Deprecated(new ERC721DynamicData()),
|
82
|
+
[Campaign.CONVEX]: new defaultTVLBuilder(), // TODO
|
83
|
+
[Campaign.STAKEDAO_CURVEVAULT]: new defaultTVLBuilder(), // TODO
|
28
84
|
};
|
29
85
|
export const campaignTVLBuilderFactory = (campaignType) => {
|
30
|
-
if (!map[campaignType]) {
|
31
|
-
return null;
|
32
|
-
}
|
33
86
|
return map[campaignType];
|
34
87
|
};
|
package/dist/src/index.d.ts
CHANGED
@@ -1269,7 +1269,7 @@ declare const app: Elysia<"", false, {
|
|
1269
1269
|
} & {
|
1270
1270
|
price?: number | null | undefined;
|
1271
1271
|
})[];
|
1272
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
1272
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
1273
1273
|
description: string;
|
1274
1274
|
howToSteps: string[];
|
1275
1275
|
depositUrl: string | undefined;
|
@@ -1407,7 +1407,7 @@ declare const app: Elysia<"", false, {
|
|
1407
1407
|
} & {
|
1408
1408
|
price?: number | null | undefined;
|
1409
1409
|
})[];
|
1410
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
1410
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
1411
1411
|
description: string;
|
1412
1412
|
howToSteps: string[];
|
1413
1413
|
depositUrl: string | undefined;
|
@@ -1537,7 +1537,7 @@ declare const app: Elysia<"", false, {
|
|
1537
1537
|
} & {
|
1538
1538
|
price?: number | null | undefined;
|
1539
1539
|
})[];
|
1540
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
1540
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
1541
1541
|
description: string;
|
1542
1542
|
howToSteps: string[];
|
1543
1543
|
depositUrl: string | undefined;
|
@@ -2363,35 +2363,6 @@ declare const app: Elysia<"", false, {
|
|
2363
2363
|
};
|
2364
2364
|
};
|
2365
2365
|
};
|
2366
|
-
} & {
|
2367
|
-
"dry-run": {
|
2368
|
-
tvl: {
|
2369
|
-
get: {
|
2370
|
-
body: unknown;
|
2371
|
-
params: {};
|
2372
|
-
query: {
|
2373
|
-
decimals?: number | undefined;
|
2374
|
-
chainId: number;
|
2375
|
-
tokenAddress: string;
|
2376
|
-
rewardTokenAddress: string;
|
2377
|
-
symbolRewardToken: string;
|
2378
|
-
};
|
2379
|
-
headers: {
|
2380
|
-
authorization: string;
|
2381
|
-
};
|
2382
|
-
response: {
|
2383
|
-
200: {
|
2384
|
-
tvl: number;
|
2385
|
-
totalSupply: number;
|
2386
|
-
cardName: string;
|
2387
|
-
blacklistedSupply: number;
|
2388
|
-
priceTargetToken: number;
|
2389
|
-
type: string;
|
2390
|
-
};
|
2391
|
-
};
|
2392
|
-
};
|
2393
|
-
};
|
2394
|
-
};
|
2395
2366
|
} & {
|
2396
2367
|
"dry-run": {
|
2397
2368
|
metadata: {
|
@@ -2503,7 +2474,7 @@ declare const app: Elysia<"", false, {
|
|
2503
2474
|
} & {
|
2504
2475
|
price?: number | null | undefined;
|
2505
2476
|
})[];
|
2506
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
2477
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
2507
2478
|
description: string;
|
2508
2479
|
howToSteps: string[];
|
2509
2480
|
depositUrl: string | undefined;
|
@@ -2615,7 +2586,7 @@ declare const app: Elysia<"", false, {
|
|
2615
2586
|
} & {
|
2616
2587
|
price?: number | null | undefined;
|
2617
2588
|
})[];
|
2618
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
2589
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
2619
2590
|
description: string;
|
2620
2591
|
howToSteps: string[];
|
2621
2592
|
depositUrl: string | undefined;
|
@@ -5399,6 +5370,9 @@ declare const app: Elysia<"", false, {
|
|
5399
5370
|
averageBoost: number | null;
|
5400
5371
|
totalDistributedInUSD: number | null;
|
5401
5372
|
forfeitingBoost: number | null;
|
5373
|
+
averageAPIBoost: number | null;
|
5374
|
+
computeMethodBoost: number | null;
|
5375
|
+
lastRecordedNumberOfRecipients: number | null;
|
5402
5376
|
} | null;
|
5403
5377
|
};
|
5404
5378
|
};
|
@@ -3,7 +3,7 @@
|
|
3
3
|
@deprecated Used only for the v3/campaigns route
|
4
4
|
*/
|
5
5
|
import { Redis } from "@/cache";
|
6
|
-
import {
|
6
|
+
import { campaignTVLBuilderFactory } from "@/engine/tvl/factory";
|
7
7
|
import { campaignsToOldFormat } from "@/libs/deprecated-merklv3";
|
8
8
|
import { merklChainData } from "@/libs/merklChainData";
|
9
9
|
import { staticCampaignWithCache } from "@/libs/staticCampaigns";
|
@@ -68,21 +68,23 @@ export const main = async () => {
|
|
68
68
|
// Fetch dynamic data for all these types
|
69
69
|
const promisesPerType = campaignTypes.map(async (campaignType) => {
|
70
70
|
const campaigns = staticData.filter(campaign => campaign.campaignType === campaignType);
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
d.
|
71
|
+
if (campaignTVLBuilderFactory(campaignType).deprecated) {
|
72
|
+
await campaignTVLBuilderFactory(campaignType)
|
73
|
+
.build(chainId, campaigns)
|
74
|
+
.then(r => {
|
75
|
+
for (const d of r) {
|
76
|
+
if (!!d) {
|
77
|
+
// Main Parameter OVERRIDING
|
78
|
+
if (d.campaignType === Campaign.SILO && d.campaignParameters.whitelist?.length === 1) {
|
79
|
+
d.mainParameter = `${d.mainParameter}-${d.campaignParameters.whitelist[0]}`;
|
80
|
+
}
|
81
|
+
if (!dynamicData[`${d.campaignType}_${d.mainParameter}`])
|
82
|
+
dynamicData[`${d.campaignType}_${d.mainParameter}`] = {};
|
83
|
+
dynamicData[`${d.campaignType}_${d.mainParameter}`][d.campaignId] = d;
|
79
84
|
}
|
80
|
-
if (!dynamicData[`${d.campaignType}_${d.mainParameter}`])
|
81
|
-
dynamicData[`${d.campaignType}_${d.mainParameter}`] = {};
|
82
|
-
dynamicData[`${d.campaignType}_${d.mainParameter}`][d.campaignId] = d;
|
83
85
|
}
|
84
|
-
}
|
85
|
-
}
|
86
|
+
});
|
87
|
+
}
|
86
88
|
});
|
87
89
|
await Promise.all(promisesPerType);
|
88
90
|
}
|
@@ -127,7 +127,7 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
|
|
127
127
|
} & {
|
128
128
|
price?: number | null | undefined;
|
129
129
|
})[];
|
130
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
130
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
131
131
|
description: string;
|
132
132
|
howToSteps: string[];
|
133
133
|
depositUrl: string | undefined;
|
@@ -276,7 +276,7 @@ export declare abstract class CampaignService {
|
|
276
276
|
} & {
|
277
277
|
price?: number | null | undefined;
|
278
278
|
})[];
|
279
|
-
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "
|
279
|
+
mainProtocol: "splice" | "reserve" | "morpho" | "quickswap" | "euler" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "stability" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "termmax" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "punchswap" | "satlayer" | "puffer" | undefined;
|
280
280
|
description: string;
|
281
281
|
howToSteps: string[];
|
282
282
|
depositUrl: string | undefined;
|
@@ -795,6 +795,9 @@ export declare abstract class CampaignService {
|
|
795
795
|
averageBoost: number | null;
|
796
796
|
totalDistributedInUSD: number | null;
|
797
797
|
forfeitingBoost: number | null;
|
798
|
+
averageAPIBoost: number | null;
|
799
|
+
computeMethodBoost: number | null;
|
800
|
+
lastRecordedNumberOfRecipients: number | null;
|
798
801
|
} | null>;
|
799
802
|
static removeManualOverride(campaign: CampaignUnique | string, field: CampaignManualOverride): Promise<void>;
|
800
803
|
static findCampaignsToProcess(distributionChainId: ChainId): Promise<{
|