Skip to content

Commit fe84018

Browse files
committed
updates
1 parent 58ca2c1 commit fe84018

File tree

8 files changed

+69
-87
lines changed

8 files changed

+69
-87
lines changed

src/db/configuration/getConfiguration.ts

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Configuration } from "@prisma/client";
22
import { LocalWallet } from "@thirdweb-dev/wallets";
33
import { ethers } from "ethers";
4+
import { Config } from "../../schema/config";
45
import { WalletType } from "../../schema/wallet";
56
import { mandatoryAllowedCorsUrls } from "../../server/utils/cors-urls";
67
import { decrypt } from "../../utils/crypto";
@@ -9,38 +10,6 @@ import { logger } from "../../utils/logger";
910
import { prisma } from "../client";
1011
import { updateConfiguration } from "./updateConfiguration";
1112

12-
interface Config
13-
extends Omit<
14-
Configuration,
15-
| "awsAccessKeyId"
16-
| "awsSecretAccessKey"
17-
| "awsRegion"
18-
| "gcpApplicationProjectId"
19-
| "gcpKmsLocationId"
20-
| "gcpKmsKeyRingId"
21-
| "gcpApplicationCredentialEmail"
22-
| "gcpApplicationCredentialPrivateKey"
23-
> {
24-
walletConfiguration:
25-
| {
26-
type: WalletType.local;
27-
}
28-
| {
29-
type: WalletType.awsKms;
30-
awsAccessKeyId: string;
31-
awsSecretAccessKey: string;
32-
awsRegion: string;
33-
}
34-
| {
35-
type: WalletType.gcpKms;
36-
gcpApplicationProjectId: string;
37-
gcpKmsLocationId: string;
38-
gcpKmsKeyRingId: string;
39-
gcpApplicationCredentialEmail: string;
40-
gcpApplicationCredentialPrivateKey: string;
41-
};
42-
}
43-
4413
const withWalletConfig = async (config: Configuration): Promise<Config> => {
4514
// We destructure the config to omit wallet related fields to prevent direct access
4615
const {
@@ -84,8 +53,13 @@ const withWalletConfig = async (config: Configuration): Promise<Config> => {
8453
}
8554
}
8655

56+
// Renaming contractSubscriptionsRetryDelaySeconds
57+
// to contractSubscriptionsRequeryDelaySeconds to reflect its purpose
58+
// as we are requerying (& not retrying) with different delays
8759
return {
8860
...restConfig,
61+
contractSubscriptionsRequeryDelaySeconds:
62+
restConfig.contractSubscriptionsRetryDelaySeconds,
8963
walletConfiguration: {
9064
type: WalletType.awsKms,
9165
awsRegion,

src/schema/config.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Configuration } from "@prisma/client";
2+
import { WalletType } from "./wallet";
3+
4+
export interface Config
5+
extends Omit<
6+
Configuration,
7+
| "awsAccessKeyId"
8+
| "awsSecretAccessKey"
9+
| "awsRegion"
10+
| "gcpApplicationProjectId"
11+
| "gcpKmsLocationId"
12+
| "gcpKmsKeyRingId"
13+
| "gcpApplicationCredentialEmail"
14+
| "gcpApplicationCredentialPrivateKey"
15+
| "contractSubscriptionsRetryDelaySeconds"
16+
> {
17+
walletConfiguration:
18+
| {
19+
type: WalletType.local;
20+
}
21+
| {
22+
type: WalletType.awsKms;
23+
awsAccessKeyId: string;
24+
awsSecretAccessKey: string;
25+
awsRegion: string;
26+
}
27+
| {
28+
type: WalletType.gcpKms;
29+
gcpApplicationProjectId: string;
30+
gcpKmsLocationId: string;
31+
gcpKmsKeyRingId: string;
32+
gcpApplicationCredentialEmail: string;
33+
gcpApplicationCredentialPrivateKey: string;
34+
};
35+
contractSubscriptionsRequeryDelaySeconds: string;
36+
}

src/server/routes/configuration/contract-subscriptions/get.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
import { Static } from "@sinclair/typebox";
1+
import { Static, Type } from "@sinclair/typebox";
22
import { FastifyInstance } from "fastify";
33
import { StatusCodes } from "http-status-codes";
44
import { getConfig } from "../../../../utils/cache/getConfig";
55
import {
6-
contractSubscriptionResponseSchema,
6+
contractSubscriptionConfigurationSchema,
77
standardResponseSchema,
88
} from "../../../schemas/sharedApiSchemas";
99

10+
const responseSchema = Type.Object({
11+
result: contractSubscriptionConfigurationSchema,
12+
});
13+
1014
export async function getContractSubscriptionsConfiguration(
1115
fastify: FastifyInstance,
1216
) {
1317
fastify.route<{
14-
Reply: Static<typeof contractSubscriptionResponseSchema>;
18+
Reply: Static<typeof responseSchema>;
1519
}>({
1620
method: "GET",
1721
url: "/configuration/contract-subscriptions",
@@ -22,7 +26,7 @@ export async function getContractSubscriptionsConfiguration(
2226
operationId: "getContractSubscriptionsConfiguration",
2327
response: {
2428
...standardResponseSchema,
25-
[StatusCodes.OK]: contractSubscriptionResponseSchema,
29+
[StatusCodes.OK]: responseSchema,
2630
},
2731
},
2832
handler: async (req, res) => {
@@ -31,7 +35,7 @@ export async function getContractSubscriptionsConfiguration(
3135
result: {
3236
maxBlocksToIndex: config.maxBlocksToIndex,
3337
contractSubscriptionsRequeryDelaySeconds:
34-
config.contractSubscriptionsRetryDelaySeconds,
38+
config.contractSubscriptionsRequeryDelaySeconds,
3539
},
3640
});
3741
},

src/server/routes/configuration/contract-subscriptions/update.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,24 @@ import { updateConfiguration } from "../../../../db/configuration/updateConfigur
55
import { getConfig } from "../../../../utils/cache/getConfig";
66
import { createCustomError } from "../../../middleware/error";
77
import {
8-
contractSubscriptionResponseSchema,
8+
contractSubscriptionConfigurationSchema,
99
standardResponseSchema,
1010
} from "../../../schemas/sharedApiSchemas";
1111

12-
const BodySchema = Type.Object({
12+
const requestBodySchema = Type.Object({
1313
maxBlocksToIndex: Type.Optional(Type.Number({ minimum: 1, maximum: 25 })),
1414
contractSubscriptionsRequeryDelaySeconds: Type.Optional(Type.String()),
1515
});
1616

17+
const responseSchema = Type.Object({
18+
result: contractSubscriptionConfigurationSchema,
19+
});
20+
1721
export async function updateContractSubscriptionsConfiguration(
1822
fastify: FastifyInstance,
1923
) {
2024
fastify.route<{
21-
Body: Static<typeof BodySchema>;
25+
Body: Static<typeof requestBodySchema>;
2226
}>({
2327
method: "POST",
2428
url: "/configuration/contract-subscriptions",
@@ -27,10 +31,10 @@ export async function updateContractSubscriptionsConfiguration(
2731
description: "Update the configuration for Contract Subscriptions",
2832
tags: ["Configuration"],
2933
operationId: "updateContractSubscriptionsConfiguration",
30-
body: BodySchema,
34+
body: requestBodySchema,
3135
response: {
3236
...standardResponseSchema,
33-
[StatusCodes.OK]: contractSubscriptionResponseSchema,
37+
[StatusCodes.OK]: responseSchema,
3438
},
3539
},
3640
handler: async (req, res) => {
@@ -72,7 +76,7 @@ export async function updateContractSubscriptionsConfiguration(
7276
result: {
7377
maxBlocksToIndex: config.maxBlocksToIndex,
7478
contractSubscriptionsRequeryDelaySeconds:
75-
config.contractSubscriptionsRetryDelaySeconds,
79+
config.contractSubscriptionsRequeryDelaySeconds,
7680
},
7781
});
7882
},

src/server/schemas/sharedApiSchemas.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -333,9 +333,7 @@ export const walletDetailsSchema = Type.Object({
333333
]),
334334
});
335335

336-
export const contractSubscriptionResponseSchema = Type.Object({
337-
result: Type.Object({
338-
maxBlocksToIndex: Type.Number(),
339-
contractSubscriptionsRequeryDelaySeconds: Type.String(),
340-
}),
336+
export const contractSubscriptionConfigurationSchema = Type.Object({
337+
maxBlocksToIndex: Type.Number(),
338+
contractSubscriptionsRequeryDelaySeconds: Type.String(),
341339
});

src/utils/cache/getConfig.ts

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,7 @@
1-
import { Configuration } from "@prisma/client";
21
import { getConfiguration } from "../../db/configuration/getConfiguration";
3-
import { WalletType } from "../../schema/wallet";
2+
import { Config } from "../../schema/config";
43

54
const cacheKey = "config";
6-
interface Config
7-
extends Omit<
8-
Configuration,
9-
| "awsAccessKeyId"
10-
| "awsSecretAccessKey"
11-
| "awsRegion"
12-
| "gcpApplicationProjectId"
13-
| "gcpKmsLocationId"
14-
| "gcpKmsKeyRingId"
15-
| "gcpApplicationCredentialEmail"
16-
| "gcpApplicationCredentialPrivateKey"
17-
> {
18-
walletConfiguration:
19-
| {
20-
type: WalletType.local;
21-
}
22-
| {
23-
type: WalletType.awsKms;
24-
awsAccessKeyId: string;
25-
awsSecretAccessKey: string;
26-
awsRegion: string;
27-
}
28-
| {
29-
type: WalletType.gcpKms;
30-
gcpApplicationProjectId: string;
31-
gcpKmsLocationId: string;
32-
gcpKmsKeyRingId: string;
33-
gcpApplicationCredentialEmail: string;
34-
gcpApplicationCredentialPrivateKey: string;
35-
};
36-
}
37-
385
export const configCache = new Map<string, Config>();
396

407
export const getConfig = async (retrieveFromCache = true): Promise<Config> => {
@@ -51,7 +18,6 @@ export const getConfig = async (retrieveFromCache = true): Promise<Config> => {
5118
}
5219

5320
const configData = await getConfiguration();
54-
5521
configCache.set(cacheKey, configData);
5622
return configData;
5723
};

src/worker/queues/processEventLogsQueue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ export const enqueueProcessEventLogs = async (
3232
const serialized = SuperJSON.stringify(data);
3333
// e.g. 8453:14423125-14423685
3434
const jobName = `${data.chainId}:${data.fromBlock}-${data.toBlock}`;
35-
const { contractSubscriptionsRetryDelaySeconds } = await getConfig();
36-
const requeryDelays = contractSubscriptionsRetryDelaySeconds.split(",");
35+
const { contractSubscriptionsRequeryDelaySeconds } = await getConfig();
36+
const requeryDelays = contractSubscriptionsRequeryDelaySeconds.split(",");
3737

3838
// Enqueue one job immediately and any delayed jobs.
3939
await _queue.add(jobName, serialized);

src/worker/queues/processTransactionReceiptsQueue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ export const enqueueProcessTransactionReceipts = async (
3333
const serialized = SuperJSON.stringify(data);
3434
// e.g. 8453:14423125-14423685
3535
const jobName = `${data.chainId}:${data.fromBlock}-${data.toBlock}`;
36-
const { contractSubscriptionsRetryDelaySeconds } = await getConfig();
37-
const requeryDelays = contractSubscriptionsRetryDelaySeconds.split(",");
36+
const { contractSubscriptionsRequeryDelaySeconds } = await getConfig();
37+
const requeryDelays = contractSubscriptionsRequeryDelaySeconds.split(",");
3838

3939
// Enqueue one job immediately and any delayed jobs.
4040
await _queue.add(jobName, serialized);

0 commit comments

Comments
 (0)