@socket.tech/dl-common 1.0.6 → 1.0.7

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.
Files changed (183) hide show
  1. package/dist/dl-common/constants/confirmations.d.ts +5 -0
  2. package/dist/dl-common/constants/confirmations.js +17 -0
  3. package/dist/dl-common/constants/enums.d.ts +44 -0
  4. package/dist/dl-common/constants/enums.js +52 -0
  5. package/dist/dl-common/constants/index.d.ts +3 -0
  6. package/dist/dl-common/constants/index.js +19 -0
  7. package/dist/dl-common/constants/types.d.ts +126 -0
  8. package/dist/dl-common/constants/types.js +45 -0
  9. package/dist/dl-common/constants/waitTime.d.ts +8 -0
  10. package/dist/dl-common/constants/waitTime.js +49 -0
  11. package/dist/dl-common/index.d.ts +4 -0
  12. package/dist/dl-common/index.js +20 -0
  13. package/dist/dl-common/models/attestSignature.d.ts +35 -0
  14. package/dist/dl-common/models/attestSignature.js +53 -0
  15. package/dist/dl-common/models/attestation.d.ts +70 -0
  16. package/dist/dl-common/models/attestation.js +86 -0
  17. package/dist/dl-common/models/index.d.ts +7 -0
  18. package/dist/dl-common/models/index.js +23 -0
  19. package/dist/dl-common/models/lastBlock.d.ts +28 -0
  20. package/dist/dl-common/models/lastBlock.js +27 -0
  21. package/dist/dl-common/models/message.d.ts +166 -0
  22. package/dist/dl-common/models/message.js +183 -0
  23. package/dist/dl-common/models/packet.d.ts +241 -0
  24. package/dist/dl-common/models/packet.js +250 -0
  25. package/dist/dl-common/models/proposal.d.ts +127 -0
  26. package/dist/dl-common/models/proposal.js +141 -0
  27. package/dist/dl-common/models/switchboard.d.ts +69 -0
  28. package/dist/dl-common/models/switchboard.js +92 -0
  29. package/dist/dl-common/models/transaction.d.ts +0 -0
  30. package/dist/dl-common/models/transaction.js +280 -0
  31. package/dist/dl-common/services/cacheService.d.ts +14 -0
  32. package/dist/dl-common/services/cacheService.js +77 -0
  33. package/dist/dl-common/services/eventBridgeService.d.ts +8 -0
  34. package/dist/dl-common/services/eventBridgeService.js +40 -0
  35. package/dist/dl-common/services/index.d.ts +3 -0
  36. package/dist/dl-common/services/index.js +20 -0
  37. package/dist/dl-common/services/queueService.d.ts +10 -0
  38. package/dist/dl-common/services/queueService.js +62 -0
  39. package/dist/dl-common/utils/address.d.ts +2 -0
  40. package/dist/dl-common/utils/address.js +8 -0
  41. package/dist/dl-common/utils/axios.d.ts +2 -0
  42. package/dist/dl-common/utils/axios.js +54 -0
  43. package/dist/dl-common/utils/dataStructHelper.d.ts +2 -0
  44. package/dist/dl-common/utils/dataStructHelper.js +10 -0
  45. package/dist/dl-common/utils/discord.d.ts +2 -0
  46. package/dist/dl-common/utils/discord.js +35 -0
  47. package/dist/dl-common/utils/ethersAwsKmsSigner.d.ts +2 -0
  48. package/dist/dl-common/utils/ethersAwsKmsSigner.js +26 -0
  49. package/dist/dl-common/utils/eventGetter.d.ts +4 -0
  50. package/dist/dl-common/utils/eventGetter.js +50 -0
  51. package/dist/dl-common/utils/extraUtils.d.ts +32 -0
  52. package/dist/dl-common/utils/extraUtils.js +103 -0
  53. package/dist/dl-common/utils/idUtils.d.ts +14 -0
  54. package/dist/dl-common/utils/idUtils.js +50 -0
  55. package/dist/dl-common/utils/index.d.ts +13 -0
  56. package/dist/dl-common/utils/index.js +29 -0
  57. package/dist/dl-common/utils/relaySigner.d.ts +21 -0
  58. package/dist/dl-common/utils/relaySigner.js +68 -0
  59. package/dist/dl-common/utils/s3Service.d.ts +5 -0
  60. package/dist/dl-common/utils/s3Service.js +45 -0
  61. package/dist/dl-common/utils/secretManagerService.d.ts +2 -0
  62. package/dist/dl-common/utils/secretManagerService.js +33 -0
  63. package/dist/dl-common/utils/signer/adapter.d.ts +18 -0
  64. package/dist/dl-common/utils/signer/adapter.js +71 -0
  65. package/dist/dl-common/utils/signer/address.d.ts +10 -0
  66. package/dist/dl-common/utils/signer/address.js +42 -0
  67. package/dist/dl-common/utils/signer/asn1-parser.d.ts +11 -0
  68. package/dist/dl-common/utils/signer/asn1-parser.js +80 -0
  69. package/dist/dl-common/utils/signer/crypto.d.ts +6 -0
  70. package/dist/dl-common/utils/signer/crypto.js +34 -0
  71. package/dist/dl-common/utils/signer/index.d.ts +4 -0
  72. package/dist/dl-common/utils/signer/index.js +20 -0
  73. package/dist/dl-common/utils/signer/kms-ethers-signer.d.ts +19 -0
  74. package/dist/dl-common/utils/signer/kms-ethers-signer.js +32 -0
  75. package/dist/dl-common/utils/signer/kms-signer.d.ts +14 -0
  76. package/dist/dl-common/utils/signer/kms-signer.js +46 -0
  77. package/dist/dl-common/utils/signer/signature.d.ts +17 -0
  78. package/dist/dl-common/utils/signer/signature.js +65 -0
  79. package/dist/dl-common/utils/signer/signer.d.ts +7 -0
  80. package/dist/dl-common/utils/signer/signer.js +2 -0
  81. package/dist/dl-common/utils/time.d.ts +2 -0
  82. package/dist/dl-common/utils/time.js +7 -0
  83. package/dist/index.js +30 -14
  84. package/dist/src/constants/batcherModes.d.ts +7 -0
  85. package/dist/src/constants/batcherModes.js +56 -0
  86. package/dist/src/constants/config.d.ts +39 -0
  87. package/dist/src/constants/config.js +77 -0
  88. package/dist/src/constants/enums.d.ts +21 -0
  89. package/dist/src/constants/enums.js +27 -0
  90. package/dist/src/constants/gasEstimation.d.ts +8 -0
  91. package/dist/src/constants/gasEstimation.js +61 -0
  92. package/dist/src/constants/index.d.ts +11 -0
  93. package/dist/src/constants/index.js +28 -0
  94. package/dist/src/constants/limits.d.ts +21 -0
  95. package/dist/src/constants/limits.js +91 -0
  96. package/dist/src/constants/prometheus.config.d.ts +43 -0
  97. package/dist/src/constants/prometheus.config.js +316 -0
  98. package/dist/src/constants/relayer.d.ts +6 -0
  99. package/dist/src/constants/relayer.js +15 -0
  100. package/dist/src/constants/s3Config.d.ts +13 -0
  101. package/dist/src/constants/s3Config.js +61 -0
  102. package/dist/src/constants/stageConfig.d.ts +7 -0
  103. package/dist/src/constants/stageConfig.js +24 -0
  104. package/dist/src/constants/types.d.ts +45 -0
  105. package/dist/src/constants/types.js +2 -0
  106. package/dist/src/constants/watchers.d.ts +15 -0
  107. package/dist/src/constants/watchers.js +137 -0
  108. package/dist/src/controllers/index.d.ts +0 -0
  109. package/dist/src/controllers/index.js +3 -0
  110. package/dist/src/db/associations.d.ts +1 -0
  111. package/dist/src/db/associations.js +46 -0
  112. package/dist/src/db/connection.d.ts +4 -0
  113. package/dist/src/db/connection.js +73 -0
  114. package/dist/src/db/index.d.ts +2 -0
  115. package/dist/src/db/index.js +18 -0
  116. package/dist/src/db/init.d.ts +2 -0
  117. package/dist/src/db/init.js +27 -0
  118. package/dist/src/handlers/common.d.ts +2 -0
  119. package/dist/src/handlers/common.js +59 -0
  120. package/dist/src/handlers/cronHandler.d.ts +10 -0
  121. package/dist/src/handlers/cronHandler.js +268 -0
  122. package/dist/src/handlers/executeHandler.d.ts +3 -0
  123. package/dist/src/handlers/executeHandler.js +66 -0
  124. package/dist/src/handlers/handler.d.ts +2 -0
  125. package/dist/src/handlers/handler.js +29 -0
  126. package/dist/src/handlers/proposeHandler.d.ts +3 -0
  127. package/dist/src/handlers/proposeHandler.js +69 -0
  128. package/dist/src/handlers/routes.d.ts +2 -0
  129. package/dist/src/handlers/routes.js +26 -0
  130. package/dist/src/handlers/sealHandler.d.ts +4 -0
  131. package/dist/src/handlers/sealHandler.js +245 -0
  132. package/dist/src/handlers/statusHandler.d.ts +5 -0
  133. package/dist/src/handlers/statusHandler.js +116 -0
  134. package/dist/src/handlers/taskHandler.d.ts +2 -0
  135. package/dist/src/handlers/taskHandler.js +110 -0
  136. package/dist/src/handlers/testHandler.d.ts +4 -0
  137. package/dist/src/handlers/testHandler.js +99 -0
  138. package/dist/src/main.d.ts +0 -0
  139. package/dist/src/main.js +12 -0
  140. package/dist/src/relayers/common.d.ts +7 -0
  141. package/dist/src/relayers/common.js +55 -0
  142. package/dist/src/relayers/index.d.ts +2 -0
  143. package/dist/src/relayers/index.js +19 -0
  144. package/dist/src/relayers/proposeRelayer.d.ts +7 -0
  145. package/dist/src/relayers/proposeRelayer.js +587 -0
  146. package/dist/src/relayers/sealRelayer.d.ts +8 -0
  147. package/dist/src/relayers/sealRelayer.js +276 -0
  148. package/dist/src/services/attestService.d.ts +45 -0
  149. package/dist/src/services/attestService.js +269 -0
  150. package/dist/src/services/batcherService.d.ts +9 -0
  151. package/dist/src/services/batcherService.js +197 -0
  152. package/dist/src/services/executeService.d.ts +16 -0
  153. package/dist/src/services/executeService.js +209 -0
  154. package/dist/src/services/gasEstimationService.d.ts +3 -0
  155. package/dist/src/services/gasEstimationService.js +12 -0
  156. package/dist/src/services/index.d.ts +4 -0
  157. package/dist/src/services/index.js +23 -0
  158. package/dist/src/services/indexSealService.d.ts +15 -0
  159. package/dist/src/services/indexSealService.js +120 -0
  160. package/dist/src/services/proposalCheckService.d.ts +9 -0
  161. package/dist/src/services/proposalCheckService.js +119 -0
  162. package/dist/src/services/sealService.d.ts +27 -0
  163. package/dist/src/services/sealService.js +190 -0
  164. package/dist/src/statusTrackers/failedMessage.d.ts +8 -0
  165. package/dist/src/statusTrackers/failedMessage.js +72 -0
  166. package/dist/src/statusTrackers/failedPacket.d.ts +13 -0
  167. package/dist/src/statusTrackers/failedPacket.js +110 -0
  168. package/dist/src/statusTrackers/index.d.ts +3 -0
  169. package/dist/src/statusTrackers/index.js +26 -0
  170. package/dist/src/statusTrackers/message.d.ts +4 -0
  171. package/dist/src/statusTrackers/message.js +257 -0
  172. package/dist/src/statusTrackers/packet.d.ts +33 -0
  173. package/dist/src/statusTrackers/packet.js +477 -0
  174. package/dist/src/utils/chain-utils.d.ts +5 -0
  175. package/dist/src/utils/chain-utils.js +42 -0
  176. package/dist/src/utils/index.d.ts +2 -0
  177. package/dist/src/utils/index.js +18 -0
  178. package/dist/src/utils/logger.d.ts +9 -0
  179. package/dist/src/utils/logger.js +9 -0
  180. package/dist/utils/s3Service.js +1 -1
  181. package/dist/utils/signer/socketSigner.d.ts +32 -0
  182. package/dist/utils/signer/socketSigner.js +121 -0
  183. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setS3Version = exports.refreshS3Config = exports.getProvider = exports.initS3Config = exports.ChainSlugToId = exports.addresses = exports.providers = exports.supportedChainSlugs = exports.s3Config = void 0;
4
+ const dl_common_1 = require("../../dl-common");
5
+ const config_1 = require("./config");
6
+ const stageConfig_1 = require("./stageConfig");
7
+ const providers_1 = require("@ethersproject/providers");
8
+ exports.providers = {};
9
+ exports.addresses = {};
10
+ exports.ChainSlugToId = {};
11
+ let lastUpdateTimestamp = 0;
12
+ const initS3Config = async () => {
13
+ var _a;
14
+ const refreshConfig = await (0, exports.refreshS3Config)();
15
+ if (!refreshConfig)
16
+ return;
17
+ const awsAccount = process.env.AWS_ACCOUNT || dl_common_1.Accounts.dl;
18
+ // update this to ll after migration
19
+ exports.s3Config = await (0, dl_common_1.getS3Config)(config_1.deploymentMode, stageConfig_1.stageConfig.region, awsAccount);
20
+ exports.supportedChainSlugs = exports.s3Config.batcherSupportedChainSlugs;
21
+ exports.ChainSlugToId = exports.s3Config.chainSlugToId;
22
+ exports.addresses = exports.s3Config.addresses;
23
+ if (!exports.addresses)
24
+ throw new Error("addresses not found");
25
+ for (const chainSlug of exports.supportedChainSlugs) {
26
+ const rpcUrl = (_a = exports.s3Config.chains[chainSlug]) === null || _a === void 0 ? void 0 : _a.rpc;
27
+ if (!rpcUrl)
28
+ throw new Error(`RPC not found for ${chainSlug}`);
29
+ exports.providers[chainSlug] = new providers_1.StaticJsonRpcProvider(rpcUrl);
30
+ }
31
+ await (0, exports.setS3Version)(exports.s3Config.version);
32
+ };
33
+ exports.initS3Config = initS3Config;
34
+ const getProvider = (chainSlug) => {
35
+ const provider = exports.providers[chainSlug];
36
+ if (!provider)
37
+ throw (0, dl_common_1.InternalServerError)(`provider not found ${chainSlug}`);
38
+ return provider;
39
+ };
40
+ exports.getProvider = getProvider;
41
+ const refreshS3Config = async () => {
42
+ const enoughTimePassed = Date.now() - lastUpdateTimestamp > config_1.S3_CONFIG_UPDATE_SCHEDULE * 1000;
43
+ if (!exports.s3Config || enoughTimePassed) {
44
+ lastUpdateTimestamp = Date.now();
45
+ return true;
46
+ }
47
+ return false;
48
+ };
49
+ exports.refreshS3Config = refreshS3Config;
50
+ const setS3Version = async (version) => {
51
+ try {
52
+ await (0, dl_common_1.axiosPost)(config_1.DL_API_SET_VERSION_URL, {
53
+ service: config_1.serviceName,
54
+ version,
55
+ });
56
+ }
57
+ catch (error) {
58
+ console.log("error in setting version", error);
59
+ }
60
+ };
61
+ exports.setS3Version = setS3Version;
@@ -0,0 +1,7 @@
1
+ export interface StageConfig {
2
+ serviceBaseUrl: string;
3
+ region: string;
4
+ prometheusServerURL: string;
5
+ sealTimeout: number;
6
+ }
7
+ export declare let stageConfig: StageConfig;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.stageConfig = void 0;
5
+ const dl_core_1 = require("@socket.tech/dl-core");
6
+ const config_1 = require("./config");
7
+ const prodConfig = {
8
+ serviceBaseUrl: "https://7xvfvlqyt7.execute-api.us-east-1.amazonaws.com/prod/v1",
9
+ prometheusServerURL: (_a = process.env.PROMETHEUS_SERVER_URL) !== null && _a !== void 0 ? _a : "http://prometheus.dlprod.backend.local:9091/",
10
+ region: "us-east-1",
11
+ sealTimeout: 15 * 60, // 15 minutes
12
+ };
13
+ const devConfig = {
14
+ serviceBaseUrl: "https://osek8oe23e.execute-api.us-east-1.amazonaws.com/dev/v1",
15
+ region: "us-east-1",
16
+ prometheusServerURL: (_b = process.env.PROMETHEUS_SERVER_URL) !== null && _b !== void 0 ? _b : "http://prometheus.dev.backend.local:9091/",
17
+ sealTimeout: 5 * 60, // 5 minutes
18
+ };
19
+ if (config_1.deploymentMode === dl_core_1.DeploymentMode.PROD) {
20
+ exports.stageConfig = prodConfig;
21
+ }
22
+ else {
23
+ exports.stageConfig = devConfig;
24
+ }
@@ -0,0 +1,45 @@
1
+ import { type AttestSignature, type Message, type Packet, type RelayerAPIStatus } from "../../dl-common";
2
+ import { type BigNumber } from "ethers";
3
+ export type PacketProposalCounts = Record<string, {
4
+ count: number;
5
+ receivedFromContract: boolean;
6
+ }>;
7
+ export type PacketAttestSignatures = Record<string, string[]>;
8
+ export type PacketMessageJoin = Message & {
9
+ Packet: Packet;
10
+ };
11
+ export type ExecutionDetails = [string, number, BigNumber, string, string];
12
+ export type MessageDetails = [string, string, string, string, string];
13
+ export type ExecutionParams = [
14
+ executionDetails: ExecutionDetails,
15
+ messageDetails: MessageDetails
16
+ ];
17
+ export type MessageMap = Record<string, Message>;
18
+ export interface TxStatusResponse {
19
+ txId: string;
20
+ txHash: string;
21
+ status: RelayerAPIStatus;
22
+ }
23
+ export type PacketMessageAttestJoin = Packet & {
24
+ Messages?: Message[];
25
+ AttestSignatures?: AttestSignature[];
26
+ };
27
+ export type ProposeArgs = [string, string, string, string];
28
+ export type AttestArgs = [string, string, number, string, string];
29
+ export interface BatchData {
30
+ proposeBatchDataArgs: ProposeArgs[];
31
+ attestBatchDataArgs: AttestArgs[];
32
+ executeBatchDataArgs: ExecutionParams[];
33
+ totalMsgValue: BigNumber;
34
+ totalGasLimit: number;
35
+ proposeRowIds: number[];
36
+ attestRowIds: number[];
37
+ messageRowIds: number[];
38
+ }
39
+ export interface TxStatusUpdate {
40
+ chainId: number;
41
+ txId: string;
42
+ txHash: string;
43
+ status: RelayerAPIStatus;
44
+ confirmations: number;
45
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import { ChainSlug } from "@socket.tech/dl-core";
2
+ export interface Watcher {
3
+ baseUrl: string;
4
+ authToken: string;
5
+ paths: {
6
+ [chain in ChainSlug]?: ChainSlug[];
7
+ };
8
+ switchboards: [];
9
+ }
10
+ type Watchers = Record<string, Watcher>;
11
+ export declare const prodWatchers: Watchers;
12
+ export declare const devWatchers: Watchers;
13
+ export declare let watchers: Watchers;
14
+ export declare const getWatchers: (srcChainSlug: ChainSlug, dstChainSlug: ChainSlug, switchboard: string) => string[];
15
+ export {};
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWatchers = exports.watchers = exports.devWatchers = exports.prodWatchers = void 0;
4
+ const dl_core_1 = require("@socket.tech/dl-core");
5
+ const enums_1 = require("./enums");
6
+ const config_1 = require("./config");
7
+ const SX_TESTNET_PATHS = {
8
+ [dl_core_1.ChainSlug.SX_NETWORK_TESTNET]: [
9
+ dl_core_1.ChainSlug.POLYGON_MUMBAI,
10
+ dl_core_1.ChainSlug.SEPOLIA,
11
+ dl_core_1.ChainSlug.ARBITRUM_SEPOLIA,
12
+ dl_core_1.ChainSlug.OPTIMISM_SEPOLIA,
13
+ ],
14
+ [dl_core_1.ChainSlug.OPTIMISM_SEPOLIA]: [dl_core_1.ChainSlug.SX_NETWORK_TESTNET],
15
+ [dl_core_1.ChainSlug.ARBITRUM_SEPOLIA]: [dl_core_1.ChainSlug.SX_NETWORK_TESTNET],
16
+ [dl_core_1.ChainSlug.POLYGON_MUMBAI]: [dl_core_1.ChainSlug.SX_NETWORK_TESTNET],
17
+ [dl_core_1.ChainSlug.SEPOLIA]: [dl_core_1.ChainSlug.SX_NETWORK_TESTNET],
18
+ };
19
+ const SX_MAINNET_PATHS = {
20
+ [dl_core_1.ChainSlug.SX_NETWORK]: [
21
+ dl_core_1.ChainSlug.POLYGON_MAINNET,
22
+ dl_core_1.ChainSlug.MAINNET,
23
+ dl_core_1.ChainSlug.ARBITRUM,
24
+ dl_core_1.ChainSlug.OPTIMISM,
25
+ ],
26
+ [dl_core_1.ChainSlug.OPTIMISM]: [dl_core_1.ChainSlug.SX_NETWORK],
27
+ [dl_core_1.ChainSlug.ARBITRUM]: [dl_core_1.ChainSlug.SX_NETWORK],
28
+ [dl_core_1.ChainSlug.POLYGON_MAINNET]: [dl_core_1.ChainSlug.SX_NETWORK],
29
+ [dl_core_1.ChainSlug.MAINNET]: [dl_core_1.ChainSlug.SX_NETWORK],
30
+ };
31
+ // add switchboard as well later on
32
+ exports.prodWatchers = {
33
+ [enums_1.WatcherIDs.SOCKET]: {
34
+ baseUrl: config_1.SOCKET_WATCHER_URL,
35
+ // baseUrl: "http://54.204.105.162:3000/attest",
36
+ authToken: config_1.SOCKET_WATCHER_AUTH_TOKEN,
37
+ paths: {},
38
+ switchboards: [],
39
+ },
40
+ [enums_1.WatcherIDs.AEVO]: {
41
+ baseUrl: config_1.AEVO_WATCHER_URL,
42
+ authToken: config_1.AEVO_WATCHER_AUTH_TOKEN,
43
+ paths: {
44
+ [dl_core_1.ChainSlug.AEVO]: [dl_core_1.ChainSlug.OPTIMISM, dl_core_1.ChainSlug.ARBITRUM],
45
+ [dl_core_1.ChainSlug.OPTIMISM]: [dl_core_1.ChainSlug.AEVO],
46
+ [dl_core_1.ChainSlug.ARBITRUM]: [dl_core_1.ChainSlug.AEVO],
47
+ },
48
+ switchboards: [],
49
+ },
50
+ [enums_1.WatcherIDs.SX1]: {
51
+ baseUrl: config_1.SX_WATCHER1_URL,
52
+ authToken: config_1.SX_WATCHER1_AUTH_TOKEN,
53
+ paths: SX_TESTNET_PATHS,
54
+ switchboards: [],
55
+ },
56
+ [enums_1.WatcherIDs.SX2]: {
57
+ baseUrl: config_1.SX_WATCHER2_URL,
58
+ authToken: config_1.SX_WATCHER2_AUTH_TOKEN,
59
+ paths: SX_TESTNET_PATHS,
60
+ switchboards: [],
61
+ },
62
+ [enums_1.WatcherIDs.SXPROD1]: {
63
+ baseUrl: config_1.SX_PROD_WATCHER1_URL,
64
+ authToken: config_1.SX_PROD_WATCHER1_AUTH_TOKEN,
65
+ paths: SX_MAINNET_PATHS,
66
+ switchboards: [],
67
+ },
68
+ [enums_1.WatcherIDs.SXPROD2]: {
69
+ baseUrl: config_1.SX_PROD_WATCHER2_URL,
70
+ authToken: config_1.SX_PROD_WATCHER2_AUTH_TOKEN,
71
+ paths: SX_MAINNET_PATHS,
72
+ switchboards: [],
73
+ },
74
+ [enums_1.WatcherIDs.SXPROD3]: {
75
+ baseUrl: config_1.SX_PROD_WATCHER3_URL,
76
+ authToken: config_1.SX_PROD_WATCHER3_AUTH_TOKEN,
77
+ paths: SX_MAINNET_PATHS,
78
+ switchboards: [],
79
+ },
80
+ [enums_1.WatcherIDs.SXPROD4]: {
81
+ baseUrl: config_1.SX_PROD_WATCHER4_URL,
82
+ authToken: config_1.SX_PROD_WATCHER4_AUTH_TOKEN,
83
+ paths: SX_MAINNET_PATHS,
84
+ switchboards: [],
85
+ },
86
+ };
87
+ // add switchboard as well later on
88
+ exports.devWatchers = {
89
+ [enums_1.WatcherIDs.SOCKET]: {
90
+ baseUrl: config_1.SOCKET_WATCHER_URL,
91
+ authToken: config_1.SOCKET_WATCHER_AUTH_TOKEN,
92
+ paths: {},
93
+ switchboards: [],
94
+ },
95
+ [enums_1.WatcherIDs.AEVO]: {
96
+ baseUrl: config_1.AEVO_WATCHER_URL,
97
+ // baseUrl: "http://54.204.105.162:3001/attest",
98
+ authToken: config_1.AEVO_WATCHER_AUTH_TOKEN,
99
+ paths: {
100
+ [dl_core_1.ChainSlug.AEVO_TESTNET]: [
101
+ dl_core_1.ChainSlug.OPTIMISM_GOERLI,
102
+ // ChainSlug.ARBITRUM_GOERLI,
103
+ ],
104
+ [dl_core_1.ChainSlug.OPTIMISM_GOERLI]: [dl_core_1.ChainSlug.AEVO_TESTNET],
105
+ [dl_core_1.ChainSlug.ARBITRUM_GOERLI]: [
106
+ // ChainSlug.AEVO_TESTNET
107
+ ],
108
+ },
109
+ switchboards: [],
110
+ },
111
+ };
112
+ exports.watchers = {};
113
+ if (config_1.deploymentMode === dl_core_1.DeploymentMode.DEV) {
114
+ exports.watchers = exports.devWatchers;
115
+ }
116
+ else if (config_1.deploymentMode === dl_core_1.DeploymentMode.PROD) {
117
+ exports.watchers = exports.prodWatchers;
118
+ }
119
+ const getWatchers = (srcChainSlug, dstChainSlug, switchboard) => {
120
+ var _a;
121
+ // change this if there is a path with no watcher
122
+ const validWatchers = [enums_1.WatcherIDs.SOCKET];
123
+ for (const watcherId in exports.watchers) {
124
+ const { paths } = exports.watchers[watcherId];
125
+ if (watcherId === enums_1.WatcherIDs.SOCKET)
126
+ continue; // skip socket watcher as already added
127
+ let found = false;
128
+ (_a = paths[dstChainSlug]) === null || _a === void 0 ? void 0 : _a.forEach((chain) => {
129
+ if (String(chain) == String(srcChainSlug))
130
+ found = true;
131
+ });
132
+ if (found)
133
+ validWatchers.push(watcherId);
134
+ }
135
+ return validWatchers;
136
+ };
137
+ exports.getWatchers = getWatchers;
File without changes
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // export * from "./message-controller";
3
+ // export * from "./estimate-controller";
@@ -0,0 +1 @@
1
+ export declare const defineAssociations: () => void;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineAssociations = void 0;
4
+ const dl_common_1 = require("../../dl-common");
5
+ const defineAssociations = () => {
6
+ // Switchboard.hasMany(Packet, {
7
+ // sourceKey: "switchboardId",
8
+ // foreignKey: "switchboardId",
9
+ // });
10
+ // Packet.belongsTo(Switchboard, {
11
+ // targetKey: "switchboardId",
12
+ // foreignKey: "switchboardId",
13
+ // });
14
+ dl_common_1.Packet.hasMany(dl_common_1.Message, {
15
+ sourceKey: "packetId",
16
+ foreignKey: "packetId",
17
+ });
18
+ dl_common_1.Packet.hasMany(dl_common_1.AttestSignature, {
19
+ sourceKey: "packetId",
20
+ foreignKey: "packetId",
21
+ });
22
+ // Packet.hasMany(Attestation, {
23
+ // sourceKey: "packetId",
24
+ // foreignKey: "packetId",
25
+ // });
26
+ dl_common_1.Packet.hasMany(dl_common_1.Proposal, { sourceKey: "packetId", foreignKey: "packetId" });
27
+ dl_common_1.Message.belongsTo(dl_common_1.Packet, { targetKey: "packetId", foreignKey: "packetId" });
28
+ dl_common_1.AttestSignature.belongsTo(dl_common_1.Packet, {
29
+ targetKey: "packetId",
30
+ foreignKey: "packetId",
31
+ });
32
+ // Attestation.belongsTo(Packet, {
33
+ // targetKey: "packetId",
34
+ // foreignKey: "packetId",
35
+ // });
36
+ dl_common_1.Proposal.belongsTo(dl_common_1.Packet, { targetKey: "packetId", foreignKey: "packetId" });
37
+ // Packet.hasOne(NativePacket, {
38
+ // sourceKey: "packetId",
39
+ // foreignKey: "packetId",
40
+ // });
41
+ // NativePacket.belongsTo(Packet, {
42
+ // targetKey: "packetId",
43
+ // foreignKey: "packetId",
44
+ // });
45
+ };
46
+ exports.defineAssociations = defineAssociations;
@@ -0,0 +1,4 @@
1
+ import { Sequelize } from "sequelize";
2
+ export declare let attesterDBInst: Sequelize;
3
+ export declare const closeDBConnection: () => Promise<void>;
4
+ export declare function attesterDBConnection(): Promise<Sequelize | undefined>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attesterDBConnection = exports.closeDBConnection = exports.attesterDBInst = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const constants_1 = require("../constants");
6
+ const init_1 = require("./init");
7
+ const utils_1 = require("../utils");
8
+ let attesterConnectedAndInited = false;
9
+ const closeDBConnection = async () => {
10
+ await exports.attesterDBInst.close();
11
+ attesterConnectedAndInited = false;
12
+ };
13
+ exports.closeDBConnection = closeDBConnection;
14
+ async function attesterDBConnection() {
15
+ if (exports.attesterDBInst && attesterConnectedAndInited)
16
+ return exports.attesterDBInst;
17
+ const dbInfo = await getDbCred();
18
+ exports.attesterDBInst = new sequelize_1.Sequelize(dbInfo.DB_DATABASE, dbInfo.DB_USER, dbInfo.DB_PASS, {
19
+ host: dbInfo.DB_HOST,
20
+ port: dbInfo.DB_PORT,
21
+ dialect: "postgres",
22
+ logging: false,
23
+ // logging: sequelizeLogging,
24
+ dialectOptions: {
25
+ ssl: constants_1.nodeEnv !== "localhost" && constants_1.nodeEnv !== "test",
26
+ },
27
+ });
28
+ try {
29
+ await exports.attesterDBInst.authenticate();
30
+ (0, utils_1.logInfo)({
31
+ info: "BATCHER_DB_AUTHENTICATED",
32
+ messageIds: [],
33
+ packetIds: [],
34
+ });
35
+ await (0, init_1.init)(exports.attesterDBInst);
36
+ (0, utils_1.logInfo)({ info: "BATCHER_DB_INITIATED", messageIds: [], packetIds: [] });
37
+ attesterConnectedAndInited = true;
38
+ return exports.attesterDBInst;
39
+ }
40
+ catch (error) {
41
+ console.log("Db connection failed", error);
42
+ attesterConnectedAndInited = false;
43
+ return undefined;
44
+ }
45
+ }
46
+ exports.attesterDBConnection = attesterDBConnection;
47
+ async function getDbCred() {
48
+ if (!process.env.DB_USER) {
49
+ throw new Error("DB_USER not provided");
50
+ }
51
+ if (!process.env.DB_PASS) {
52
+ throw new Error("DB_PASS not provided");
53
+ }
54
+ if (!process.env.DB_DATABASE) {
55
+ throw new Error("DB_DATABASE not provided");
56
+ }
57
+ if (!process.env.DB_PORT) {
58
+ throw new Error("DB_PORT not provided");
59
+ }
60
+ if (!process.env.DB_HOST) {
61
+ throw new Error("DB_HOST not provided");
62
+ }
63
+ const dbInfo = {
64
+ DB_USER: process.env.DB_USER,
65
+ DB_PASS: constants_1.nodeEnv === "localhost" ? "" : process.env.DB_PASS,
66
+ DB_DATABASE: process.env.DB_DATABASE,
67
+ DB_ENGINE: "postgres",
68
+ DB_MASTER_HOST: process.env.DB_MASTER_HOST,
69
+ DB_PORT: parseInt(process.env.DB_PORT),
70
+ DB_HOST: process.env.DB_HOST,
71
+ };
72
+ return dbInfo;
73
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./connection";
2
+ export * from "./init";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./connection"), exports);
18
+ __exportStar(require("./init"), exports);
@@ -0,0 +1,2 @@
1
+ import { type Sequelize } from "sequelize";
2
+ export declare const init: (sequelize: Sequelize) => Promise<void>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = void 0;
4
+ const dl_common_1 = require("../../dl-common");
5
+ const associations_1 = require("./associations");
6
+ const init = async (sequelize) => {
7
+ dl_common_1.Packet.init(dl_common_1.PacketModel, { sequelize, tableName: dl_common_1.tableNames.packet });
8
+ dl_common_1.Message.init(dl_common_1.MessageModel, { sequelize, tableName: dl_common_1.tableNames.message });
9
+ dl_common_1.AttestSignature.init(dl_common_1.AttestSignatureModel, {
10
+ sequelize,
11
+ tableName: dl_common_1.tableNames.attestSignatures,
12
+ });
13
+ dl_common_1.Proposal.init(dl_common_1.ProposalModel, {
14
+ sequelize,
15
+ tableName: dl_common_1.tableNames.proposal,
16
+ });
17
+ (0, dl_common_1.addPacketHooks)();
18
+ (0, dl_common_1.addMessageHooks)();
19
+ (0, dl_common_1.addSignatureHooks)();
20
+ (0, dl_common_1.addProposalHooks)();
21
+ (0, associations_1.defineAssociations)();
22
+ await dl_common_1.Packet.sync();
23
+ await dl_common_1.Message.sync();
24
+ await dl_common_1.AttestSignature.sync();
25
+ await dl_common_1.Proposal.sync();
26
+ };
27
+ exports.init = init;
@@ -0,0 +1,2 @@
1
+ export declare const initServices: () => Promise<void>;
2
+ export declare const buildErrorResponse: (e: unknown) => import("@socket.tech/ll-common").HttpResp;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildErrorResponse = exports.initServices = void 0;
4
+ /* eslint-disable eqeqeq */
5
+ const dl_common_1 = require("../../dl-common");
6
+ const db_1 = require("../db");
7
+ const constants_1 = require("../constants");
8
+ const ll_common_1 = require("@socket.tech/ll-common");
9
+ const prometheus_config_1 = require("../constants/prometheus.config");
10
+ const utils_1 = require("../utils");
11
+ const initServices = async () => {
12
+ (0, utils_1.logInfo)({
13
+ info: "BATCHER_CONFIG_INIT",
14
+ timestamp: Date.now(),
15
+ messageIds: [],
16
+ packetIds: [],
17
+ });
18
+ (0, dl_common_1.initCache)(constants_1.redisHost, constants_1.redisPort, constants_1.redisPassword, constants_1.deploymentMode, constants_1.serviceName);
19
+ await (0, constants_1.initS3Config)();
20
+ await (0, db_1.attesterDBConnection)();
21
+ (0, dl_common_1.initQueue)(constants_1.stageConfig.region);
22
+ (0, dl_common_1.initS3Client)(constants_1.stageConfig.region);
23
+ // uncomment this after adding redis credentials
24
+ (0, dl_common_1.initDiscord)(constants_1.DISCORD_WEBHOOK_URL, constants_1.serviceName);
25
+ (0, prometheus_config_1.initializePromMetrics)();
26
+ (0, utils_1.logInfo)({
27
+ info: "BATCHER_CONFIG_INIT_DONE",
28
+ timestamp: Date.now(),
29
+ messageIds: [],
30
+ packetIds: [],
31
+ });
32
+ };
33
+ exports.initServices = initServices;
34
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
35
+ const buildErrorResponse = (e) => {
36
+ const err = e;
37
+ if ((err === null || err === void 0 ? void 0 : err.code) == dl_common_1.StatusCodes.NOT_FOUND) {
38
+ return (0, ll_common_1.buildResponse)(404, {
39
+ status: dl_common_1.StatusCodes.NOT_FOUND,
40
+ message: err.message,
41
+ });
42
+ }
43
+ else if ((err === null || err === void 0 ? void 0 : err.code) == dl_common_1.StatusCodes.BAD_REQUEST) {
44
+ return (0, ll_common_1.buildResponse)(400, {
45
+ status: dl_common_1.StatusCodes.BAD_REQUEST,
46
+ message: err.message,
47
+ });
48
+ }
49
+ else if ((err === null || err === void 0 ? void 0 : err.code) == dl_common_1.StatusCodes.UNAUTHORIZED) {
50
+ return (0, ll_common_1.buildResponse)(401, {
51
+ status: dl_common_1.StatusCodes.UNAUTHORIZED,
52
+ message: err.message,
53
+ });
54
+ }
55
+ else {
56
+ return (0, ll_common_1.buildResponse)(500, { status: dl_common_1.StatusCodes.INTERNAL_SERVER_ERROR });
57
+ }
58
+ };
59
+ exports.buildErrorResponse = buildErrorResponse;
@@ -0,0 +1,10 @@
1
+ import { type SQSEvent, type Context, type APIGatewayProxyEvent, type APIGatewayProxyResult } from "aws-lambda";
2
+ declare enum CRON_SPEED {
3
+ SLOW = "SLOW",
4
+ FAST = "FAST"
5
+ }
6
+ export declare const getCronSpeed: () => Promise<CRON_SPEED>;
7
+ export declare const setCronSpeed: (cronSpeed: CRON_SPEED) => Promise<void>;
8
+ export declare const cronHandler: (event: SQSEvent, context: Context) => Promise<void>;
9
+ export declare const setCronSpeedHandler: (event: APIGatewayProxyEvent, context: Context) => Promise<APIGatewayProxyResult>;
10
+ export {};