@merkl/api 0.16.22 → 0.16.23
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/libs/campaigns/campaignTypes/ERC20SubTypes/{processor/GenericProcessor.d.ts → GenericProcessor.d.ts} +21 -14
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor/GenericProcessor.js → GenericProcessor.js} +45 -38
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AaveProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AaveProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AnglesLiquid.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AnglesLiquid.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AssetProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AssetProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AuraProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/AuraProcessor.js +3 -3
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BalancerGaugeProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BalancerGaugeProcessor.js +2 -2
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BalancerPoolProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BalancerPoolProcessor.js +3 -3
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BalancerV3PoolProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BalancerV3PoolProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BeefyProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/BeefyProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/CompoundProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/CompoundProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/ERC4626Processor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/ERC4626Processor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EnzymeProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EnzymeProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EqualizerGaugeProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EqualizerGaugeProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EulerBorrowProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EulerBorrowProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EulerLendProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/EulerLendProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/FluidProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/FluidProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/FraxProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/FraxProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/GammaProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/GammaProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/GearboxProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/GearboxProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/HoldStationProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/HoldStationProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/HourglassProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/HourglassProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/MaverickBPProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/MaverickBPProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/MetamorphoProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/MetamorphoProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/NoLinkVaultProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/NoLinkVaultProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/PendleProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/PendleProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/PendleYTProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/PendleYTProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/RadiantProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/RadiantProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/RfxProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/RfxProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/Satlayer.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/Satlayer.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SpectraProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SpectraProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SpectraYTProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SpectraYTProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SpliceProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SpliceProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/StakingProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/StakingProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SturdySiloProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/SturdySiloProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/TempestVaultProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/TempestVaultProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/TemplateProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/TemplateProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/TorosProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/TorosProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/UniswapProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/UniswapProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/VicunaProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/VicunaProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/WoofiProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/WoofiProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/ZkSwapThreePoolProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/ZkSwapThreePoolProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/curveNPoolProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/curveNPoolProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/curveProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/curveProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/processorMapping.d.ts +2 -2
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/processorMapping.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/stakedCurveProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/{processor → implementations}/stakedCurveProcessor.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPrices.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.d.ts +1 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4.js +1 -1
- package/dist/src/modules/v4/status/status.repository.d.ts +1 -15
- package/dist/src/modules/v4/status/status.repository.js +6 -6
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/internal/controllers/endingCampaigns.d.ts +0 -43
- package/dist/src/internal/controllers/endingCampaigns.js +0 -41
- package/dist/src/internal/controllers/unclaimed.d.ts +0 -44
- package/dist/src/internal/controllers/unclaimed.js +0 -36
- package/dist/src/internal/index.d.ts +0 -1
- package/dist/src/internal/index.js +0 -34
package/package.json
CHANGED
@@ -1,43 +0,0 @@
|
|
1
|
-
import { type Elysia } from "elysia";
|
2
|
-
export declare const endingCampaignsController: (app: Elysia) => Elysia<"", false, {
|
3
|
-
decorator: {};
|
4
|
-
store: {};
|
5
|
-
derive: {};
|
6
|
-
resolve: {};
|
7
|
-
}, {
|
8
|
-
type: {};
|
9
|
-
error: {};
|
10
|
-
}, {
|
11
|
-
schema: {};
|
12
|
-
macro: {};
|
13
|
-
macroFn: {};
|
14
|
-
}, {
|
15
|
-
v3: {
|
16
|
-
internal: {
|
17
|
-
endingCampaigns: {
|
18
|
-
get: {
|
19
|
-
body: unknown;
|
20
|
-
params: {};
|
21
|
-
query: {
|
22
|
-
maxEndDate?: number | undefined;
|
23
|
-
minEndDate?: number | undefined;
|
24
|
-
minStartDate?: number | undefined;
|
25
|
-
nonRenewedOnly?: string | undefined;
|
26
|
-
};
|
27
|
-
headers: unknown;
|
28
|
-
response: {
|
29
|
-
200: any[];
|
30
|
-
};
|
31
|
-
};
|
32
|
-
};
|
33
|
-
};
|
34
|
-
};
|
35
|
-
}, {
|
36
|
-
derive: {};
|
37
|
-
resolve: {};
|
38
|
-
schema: {};
|
39
|
-
}, {
|
40
|
-
derive: {};
|
41
|
-
resolve: {};
|
42
|
-
schema: {};
|
43
|
-
}>;
|
@@ -1,41 +0,0 @@
|
|
1
|
-
import { engineDbClient } from "../../utils/prisma";
|
2
|
-
import { t } from "elysia";
|
3
|
-
import { Pricer } from "../../utils/pricer";
|
4
|
-
import { NON_RENEWED_CAMPAIGNS } from "../../utils/queries/endingCampaigns";
|
5
|
-
const ONE_DAY = 24 * 60 * 60;
|
6
|
-
export const endingCampaignsController = (app) => app.get("/v3/internal/endingCampaigns", async ({ query, set }) => {
|
7
|
-
let minEndDate = query.minEndDate;
|
8
|
-
let maxEndDate = query.maxEndDate;
|
9
|
-
let minStartDate = query.minStartDate;
|
10
|
-
const now = Math.floor(Date.now() / 1000);
|
11
|
-
if (!minStartDate) {
|
12
|
-
minStartDate = 0;
|
13
|
-
}
|
14
|
-
if (!minEndDate) {
|
15
|
-
minEndDate = now - ONE_DAY;
|
16
|
-
}
|
17
|
-
if (!maxEndDate) {
|
18
|
-
maxEndDate = now + ONE_DAY;
|
19
|
-
}
|
20
|
-
const endingCampaigns = await engineDbClient.$queryRaw(NON_RENEWED_CAMPAIGNS(maxEndDate, minStartDate, minEndDate));
|
21
|
-
const pricer = await Pricer.load();
|
22
|
-
for (const e of endingCampaigns) {
|
23
|
-
const price = await pricer.get({
|
24
|
-
symbol: e.symbol,
|
25
|
-
});
|
26
|
-
if (!price) {
|
27
|
-
e.usdValue = 0;
|
28
|
-
continue;
|
29
|
-
}
|
30
|
-
e.usdValue = price * e.amount;
|
31
|
-
e.hoursLeft = Math.floor((e.endTimestamp - now) / 3600);
|
32
|
-
}
|
33
|
-
return endingCampaigns.sort((a, b) => b.hoursLeft - a.hoursLeft);
|
34
|
-
}, {
|
35
|
-
query: t.Object({
|
36
|
-
maxEndDate: t.Optional(t.Numeric()),
|
37
|
-
minEndDate: t.Optional(t.Numeric()),
|
38
|
-
minStartDate: t.Optional(t.Numeric()),
|
39
|
-
nonRenewedOnly: t.Optional(t.String()),
|
40
|
-
}),
|
41
|
-
});
|
@@ -1,44 +0,0 @@
|
|
1
|
-
import { type Elysia } from "elysia";
|
2
|
-
import { type TotalUnclaimedOutput } from "../../utils/queries/unclaimed";
|
3
|
-
export declare const unclaimedController: (app: Elysia) => Elysia<"", false, {
|
4
|
-
decorator: {};
|
5
|
-
store: {};
|
6
|
-
derive: {};
|
7
|
-
resolve: {};
|
8
|
-
}, {
|
9
|
-
type: {};
|
10
|
-
error: {};
|
11
|
-
}, {
|
12
|
-
schema: {};
|
13
|
-
macro: {};
|
14
|
-
macroFn: {};
|
15
|
-
}, {
|
16
|
-
v3: {
|
17
|
-
internal: {
|
18
|
-
unclaimed: {
|
19
|
-
get: {
|
20
|
-
body: unknown;
|
21
|
-
params: {};
|
22
|
-
query: {
|
23
|
-
timestamp?: number | undefined;
|
24
|
-
months?: number | undefined;
|
25
|
-
};
|
26
|
-
headers: unknown;
|
27
|
-
response: {
|
28
|
-
200: (TotalUnclaimedOutput & {
|
29
|
-
usdValue?: number;
|
30
|
-
})[];
|
31
|
-
};
|
32
|
-
};
|
33
|
-
};
|
34
|
-
};
|
35
|
-
};
|
36
|
-
}, {
|
37
|
-
derive: {};
|
38
|
-
resolve: {};
|
39
|
-
schema: {};
|
40
|
-
}, {
|
41
|
-
derive: {};
|
42
|
-
resolve: {};
|
43
|
-
schema: {};
|
44
|
-
}>;
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import { engineDbClient } from "../../utils/prisma";
|
2
|
-
import { t } from "elysia";
|
3
|
-
import { InvalidParameter } from "../../utils/error";
|
4
|
-
import { Pricer } from "../../utils/pricer";
|
5
|
-
import { UNCLAIMED_BEFORE } from "../../utils/queries/unclaimed";
|
6
|
-
export const unclaimedController = (app) => app.get("/v3/internal/unclaimed", async ({ query, set }) => {
|
7
|
-
let timestamp = query.timestamp;
|
8
|
-
const months = query.months;
|
9
|
-
if (!timestamp && !months)
|
10
|
-
throw new InvalidParameter("Missing timestamp or months");
|
11
|
-
if (!!timestamp && !!months)
|
12
|
-
throw new InvalidParameter("Cannot provide both timestamp and months");
|
13
|
-
if (!!months) {
|
14
|
-
timestamp = Math.floor(Date.now() / 1000) - months * 30 * 24 * 60 * 60;
|
15
|
-
}
|
16
|
-
if (!timestamp)
|
17
|
-
throw new InvalidParameter("Missing timestamp");
|
18
|
-
const unclaimed = await engineDbClient.$queryRaw(UNCLAIMED_BEFORE(timestamp));
|
19
|
-
const pricer = await Pricer.load();
|
20
|
-
for (const u of unclaimed) {
|
21
|
-
const price = await pricer.get({
|
22
|
-
symbol: u.symbol,
|
23
|
-
});
|
24
|
-
if (!price) {
|
25
|
-
u.usdValue = 0;
|
26
|
-
continue;
|
27
|
-
}
|
28
|
-
u.usdValue = price * u.unclaimed;
|
29
|
-
}
|
30
|
-
return unclaimed.sort((a, b) => b.usdValue - a.usdValue);
|
31
|
-
}, {
|
32
|
-
query: t.Object({
|
33
|
-
months: t.Optional(t.Numeric()),
|
34
|
-
timestamp: t.Optional(t.Numeric()),
|
35
|
-
}),
|
36
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import { redisClient } from "../cache/redis";
|
2
|
-
import { log } from "../utils/logger";
|
3
|
-
import { engineDbClient } from "../utils/prisma";
|
4
|
-
import { swagger } from "@elysiajs/swagger";
|
5
|
-
import axios from "axios";
|
6
|
-
import { Elysia } from "elysia";
|
7
|
-
import { endingCampaignsController } from "./controllers/endingCampaigns";
|
8
|
-
import { unclaimedController } from "./controllers/unclaimed";
|
9
|
-
// Axios with bun workaround
|
10
|
-
axios.defaults.headers.common["Accept-Encoding"] = "gzip";
|
11
|
-
const PORT = process.env.PORT || 3000;
|
12
|
-
const app = new Elysia({
|
13
|
-
serve: {
|
14
|
-
idleTimeout: 0,
|
15
|
-
},
|
16
|
-
})
|
17
|
-
.use(swagger())
|
18
|
-
.get("/", () => "Merkl Internal API")
|
19
|
-
.use(unclaimedController) // /v3/internal/unclaimed
|
20
|
-
.use(endingCampaignsController) // /v3/internal/endingCampaigns
|
21
|
-
.onError(ctx => {
|
22
|
-
console.error(ctx.error.message);
|
23
|
-
console.error(ctx.error.stack);
|
24
|
-
return (ctx.set.status = "Internal Server Error");
|
25
|
-
})
|
26
|
-
.listen(PORT, ({ hostname, port }) => {
|
27
|
-
log.info(`⚙️ Internal started (${hostname}:${port})`);
|
28
|
-
});
|
29
|
-
// ─── Signal Handling ─────────────────────────────────────────────────────────
|
30
|
-
process.on("SIGTERM", () => {
|
31
|
-
engineDbClient.$disconnect();
|
32
|
-
redisClient.disconnect();
|
33
|
-
process.exit();
|
34
|
-
});
|