@socket.tech/dl-common 1.0.12 → 1.0.13
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/constants/enums.d.ts +2 -8
- package/dist/constants/enums.js +1 -8
- package/dist/constants/types.d.ts +1 -11
- package/dist/constants/types.js +1 -9
- package/dist/constants/waitTime.js +4 -0
- package/dist/dl-common/constants/confirmations.js +1 -0
- package/dist/dl-common/constants/confirmations.js.map +1 -0
- package/dist/dl-common/constants/enums.js +1 -0
- package/dist/dl-common/constants/enums.js.map +1 -0
- package/dist/dl-common/constants/index.js +5 -17
- package/dist/dl-common/constants/index.js.map +1 -0
- package/dist/dl-common/constants/types.d.ts +18 -8
- package/dist/dl-common/constants/types.js +10 -1
- package/dist/dl-common/constants/types.js.map +1 -0
- package/dist/dl-common/constants/waitTime.js +1 -4
- package/dist/dl-common/constants/waitTime.js.map +1 -0
- package/dist/dl-common/index.js +6 -18
- package/dist/dl-common/index.js.map +1 -0
- package/dist/dl-common/models/attestSignature.js +1 -0
- package/dist/dl-common/models/attestSignature.js.map +1 -0
- package/dist/dl-common/models/attestation.js +1 -0
- package/dist/dl-common/models/attestation.js.map +1 -0
- package/dist/dl-common/models/index.js +9 -21
- package/dist/dl-common/models/index.js.map +1 -0
- package/dist/dl-common/models/lastBlock.js +1 -0
- package/dist/dl-common/models/lastBlock.js.map +1 -0
- package/dist/dl-common/models/message.d.ts +6 -1
- package/dist/dl-common/models/message.js +12 -1
- package/dist/dl-common/models/message.js.map +1 -0
- package/dist/dl-common/models/packet.d.ts +0 -1
- package/dist/dl-common/models/packet.js +1 -5
- package/dist/dl-common/models/packet.js.map +1 -0
- package/dist/dl-common/models/proposal.js +1 -0
- package/dist/dl-common/models/proposal.js.map +1 -0
- package/dist/dl-common/models/switchboard.js +4 -2
- package/dist/dl-common/models/switchboard.js.map +1 -0
- package/dist/dl-common/models/transaction.js +1 -279
- package/dist/dl-common/models/transaction.js.map +1 -0
- package/dist/dl-common/services/cacheService.js +35 -33
- package/dist/dl-common/services/cacheService.js.map +1 -0
- package/dist/dl-common/services/eventBridgeService.d.ts +1 -1
- package/dist/dl-common/services/eventBridgeService.js +5 -7
- package/dist/dl-common/services/eventBridgeService.js.map +1 -0
- package/dist/dl-common/services/index.js +5 -18
- package/dist/dl-common/services/index.js.map +1 -0
- package/dist/dl-common/services/queueService.js +11 -12
- package/dist/dl-common/services/queueService.js.map +1 -0
- package/dist/dl-common/utils/address.js +1 -0
- package/dist/dl-common/utils/address.js.map +1 -0
- package/dist/dl-common/utils/axios.js +13 -24
- package/dist/dl-common/utils/axios.js.map +1 -0
- package/dist/dl-common/utils/dataStructHelper.js +4 -3
- package/dist/dl-common/utils/dataStructHelper.js.map +1 -0
- package/dist/dl-common/utils/discord.d.ts +2 -2
- package/dist/dl-common/utils/discord.js +14 -5
- package/dist/dl-common/utils/discord.js.map +1 -0
- package/dist/dl-common/utils/ethersAwsKmsSigner.js +5 -4
- package/dist/dl-common/utils/ethersAwsKmsSigner.js.map +1 -0
- package/dist/dl-common/utils/eventGetter.js +8 -6
- package/dist/dl-common/utils/eventGetter.js.map +1 -0
- package/dist/dl-common/utils/extraUtils.d.ts +0 -7
- package/dist/dl-common/utils/extraUtils.js +3 -10
- package/dist/dl-common/utils/extraUtils.js.map +1 -0
- package/dist/dl-common/utils/idUtils.js +3 -5
- package/dist/dl-common/utils/idUtils.js.map +1 -0
- package/dist/dl-common/utils/index.js +15 -27
- package/dist/dl-common/utils/index.js.map +1 -0
- package/dist/dl-common/utils/relaySigner.js +38 -38
- package/dist/dl-common/utils/relaySigner.js.map +1 -0
- package/dist/dl-common/utils/s3Service.d.ts +6 -0
- package/dist/dl-common/utils/s3Service.js +42 -16
- package/dist/dl-common/utils/s3Service.js.map +1 -0
- package/dist/dl-common/utils/secretManagerService.js +9 -7
- package/dist/dl-common/utils/secretManagerService.js.map +1 -0
- package/dist/dl-common/utils/signer/adapter.js +50 -42
- package/dist/dl-common/utils/signer/adapter.js.map +1 -0
- package/dist/dl-common/utils/signer/address.d.ts +0 -1
- package/dist/dl-common/utils/signer/address.js +3 -5
- package/dist/dl-common/utils/signer/address.js.map +1 -0
- package/dist/dl-common/utils/signer/asn1-parser.d.ts +0 -6
- package/dist/dl-common/utils/signer/asn1-parser.js +5 -32
- package/dist/dl-common/utils/signer/asn1-parser.js.map +1 -0
- package/dist/dl-common/utils/signer/crypto.d.ts +0 -1
- package/dist/dl-common/utils/signer/crypto.js +6 -8
- package/dist/dl-common/utils/signer/crypto.js.map +1 -0
- package/dist/dl-common/utils/signer/index.d.ts +1 -0
- package/dist/dl-common/utils/signer/index.js +7 -18
- package/dist/dl-common/utils/signer/index.js.map +1 -0
- package/dist/dl-common/utils/signer/kms-ethers-signer.js +14 -7
- package/dist/dl-common/utils/signer/kms-ethers-signer.js.map +1 -0
- package/dist/dl-common/utils/signer/kms-signer.d.ts +0 -1
- package/dist/dl-common/utils/signer/kms-signer.js +37 -27
- package/dist/dl-common/utils/signer/kms-signer.js.map +1 -0
- package/dist/dl-common/utils/signer/signature.d.ts +0 -1
- package/dist/dl-common/utils/signer/signature.js +3 -4
- package/dist/dl-common/utils/signer/signature.js.map +1 -0
- package/dist/dl-common/utils/signer/signer.d.ts +0 -1
- package/dist/dl-common/utils/signer/signer.js +1 -0
- package/dist/dl-common/utils/signer/signer.js.map +1 -0
- package/dist/dl-common/utils/signer/socketSigner.js +155 -0
- package/dist/dl-common/utils/signer/socketSigner.js.map +1 -0
- package/dist/dl-common/utils/time.js +1 -0
- package/dist/dl-common/utils/time.js.map +1 -0
- package/dist/index.js +30 -14
- package/dist/models/index.d.ts +0 -1
- package/dist/models/index.js +0 -1
- package/dist/models/message.d.ts +1 -6
- package/dist/models/message.js +1 -11
- package/dist/models/packet.d.ts +1 -0
- package/dist/models/packet.js +1 -0
- package/dist/services/eventBridgeService.js +0 -1
- package/dist/services/queueService.d.ts +2 -2
- package/dist/services/queueService.js +14 -22
- package/dist/src/constants/batcherModes.js +1 -46
- package/dist/src/constants/batcherModes.js.map +1 -0
- package/dist/src/constants/config.d.ts +5 -0
- package/dist/src/constants/config.js +14 -13
- package/dist/src/constants/config.js.map +1 -0
- package/dist/src/constants/enums.d.ts +4 -0
- package/dist/src/constants/enums.js +7 -1
- package/dist/src/constants/enums.js.map +1 -0
- package/dist/src/constants/index.d.ts +0 -1
- package/dist/src/constants/index.js +12 -26
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/constants/limits.d.ts +5 -10
- package/dist/src/constants/limits.js +19 -56
- package/dist/src/constants/limits.js.map +1 -0
- package/dist/src/constants/prometheus.config.js +22 -215
- package/dist/src/constants/prometheus.config.js.map +1 -0
- package/dist/src/constants/relayer.d.ts +1 -0
- package/dist/src/constants/relayer.js +7 -4
- package/dist/src/constants/relayer.js.map +1 -0
- package/dist/src/constants/s3Config.js +18 -14
- package/dist/src/constants/s3Config.js.map +1 -0
- package/dist/src/constants/stageConfig.js +3 -2
- package/dist/src/constants/stageConfig.js.map +1 -0
- package/dist/src/constants/types.d.ts +13 -0
- package/dist/src/constants/types.js +1 -0
- package/dist/src/constants/types.js.map +1 -0
- package/dist/src/constants/watchers.d.ts +1 -0
- package/dist/src/constants/watchers.js +15 -13
- package/dist/src/constants/watchers.js.map +1 -0
- package/dist/src/controllers/index.js +1 -2
- package/dist/src/controllers/index.js.map +1 -0
- package/dist/src/db/associations.js +1 -24
- package/dist/src/db/associations.js.map +1 -0
- package/dist/src/db/connection.js +66 -61
- package/dist/src/db/connection.js.map +1 -0
- package/dist/src/db/index.js +4 -16
- package/dist/src/db/index.js.map +1 -0
- package/dist/src/db/init.js +8 -6
- package/dist/src/db/init.js.map +1 -0
- package/dist/src/handlers/common.js +7 -8
- package/dist/src/handlers/common.js.map +1 -0
- package/dist/src/handlers/cronHandler.d.ts +1 -7
- package/dist/src/handlers/cronHandler.js +26 -237
- package/dist/src/handlers/cronHandler.js.map +1 -0
- package/dist/src/handlers/executeHandler.js +12 -16
- package/dist/src/handlers/executeHandler.js.map +1 -0
- package/dist/src/handlers/handler.js +6 -10
- package/dist/src/handlers/handler.js.map +1 -0
- package/dist/src/handlers/proposeHandler.js +26 -11
- package/dist/src/handlers/proposeHandler.js.map +1 -0
- package/dist/src/handlers/routes.js +2 -0
- package/dist/src/handlers/routes.js.map +1 -0
- package/dist/src/handlers/sealHandler.js +14 -121
- package/dist/src/handlers/sealHandler.js.map +1 -0
- package/dist/src/handlers/statusHandler.js +30 -22
- package/dist/src/handlers/statusHandler.js.map +1 -0
- package/dist/src/handlers/taskHandler.js +24 -45
- package/dist/src/handlers/taskHandler.js.map +1 -0
- package/dist/src/handlers/testHandler.js +17 -49
- package/dist/src/handlers/testHandler.js.map +1 -0
- package/dist/src/main.js +1 -11
- package/dist/src/main.js.map +1 -0
- package/dist/src/relayers/common.d.ts +1 -1
- package/dist/src/relayers/common.js +10 -11
- package/dist/src/relayers/common.js.map +1 -0
- package/dist/src/relayers/index.d.ts +1 -1
- package/dist/src/relayers/index.js +4 -17
- package/dist/src/relayers/index.js.map +1 -0
- package/dist/src/relayers/propose/constants.d.ts +15 -0
- package/dist/src/relayers/propose/constants.js +3 -0
- package/dist/src/relayers/propose/constants.js.map +1 -0
- package/dist/src/relayers/propose/dbQuery.d.ts +2 -0
- package/dist/src/relayers/propose/dbQuery.js +141 -0
- package/dist/src/relayers/propose/dbQuery.js.map +1 -0
- package/dist/src/relayers/propose/main.d.ts +3 -0
- package/dist/src/relayers/propose/main.js +292 -0
- package/dist/src/relayers/propose/main.js.map +1 -0
- package/dist/src/relayers/propose/metrics.d.ts +2 -0
- package/dist/src/relayers/propose/metrics.js +51 -0
- package/dist/src/relayers/propose/metrics.js.map +1 -0
- package/dist/src/relayers/propose/proposalCount.d.ts +6 -0
- package/dist/src/relayers/propose/proposalCount.js +74 -0
- package/dist/src/relayers/propose/proposalCount.js.map +1 -0
- package/dist/src/relayers/propose/utils.d.ts +9 -0
- package/dist/src/relayers/propose/utils.js +42 -0
- package/dist/src/relayers/propose/utils.js.map +1 -0
- package/dist/src/relayers/sealRelayer.js +87 -60
- package/dist/src/relayers/sealRelayer.js.map +1 -0
- package/dist/src/services/attestService.d.ts +1 -1
- package/dist/src/services/attestService.js +53 -42
- package/dist/src/services/attestService.js.map +1 -0
- package/dist/src/services/batch/attest.d.ts +5 -0
- package/dist/src/services/batch/attest.js +29 -0
- package/dist/src/services/batch/attest.js.map +1 -0
- package/dist/src/services/batch/execute.d.ts +5 -0
- package/dist/src/services/batch/execute.js +34 -0
- package/dist/src/services/batch/execute.js.map +1 -0
- package/dist/src/services/batch/gasLimit.d.ts +6 -0
- package/dist/src/services/batch/gasLimit.js +59 -0
- package/dist/src/services/batch/gasLimit.js.map +1 -0
- package/dist/src/services/batch/main.d.ts +2 -0
- package/dist/src/services/batch/main.js +49 -0
- package/dist/src/services/batch/main.js.map +1 -0
- package/dist/src/services/batch/propose.d.ts +5 -0
- package/dist/src/services/batch/propose.js +22 -0
- package/dist/src/services/batch/propose.js.map +1 -0
- package/dist/src/services/batch/utils.d.ts +2 -0
- package/dist/src/services/batch/utils.js +67 -0
- package/dist/src/services/batch/utils.js.map +1 -0
- package/dist/src/services/cron/constants.d.ts +30 -0
- package/dist/src/services/cron/constants.js +71 -0
- package/dist/src/services/cron/constants.js.map +1 -0
- package/dist/src/services/cron/main.d.ts +1 -0
- package/dist/src/services/cron/main.js +32 -0
- package/dist/src/services/cron/main.js.map +1 -0
- package/dist/src/services/cron/utils.d.ts +7 -0
- package/dist/src/services/cron/utils.js +74 -0
- package/dist/src/services/cron/utils.js.map +1 -0
- package/dist/src/services/execute/executeData.d.ts +3 -0
- package/dist/src/services/execute/executeData.js +94 -0
- package/dist/src/services/execute/executeData.js.map +1 -0
- package/dist/src/services/execute/index.d.ts +2 -0
- package/dist/src/services/execute/index.js +6 -0
- package/dist/src/services/execute/index.js.map +1 -0
- package/dist/src/services/{executeService.d.ts → execute/simulate.d.ts} +2 -2
- package/dist/src/services/execute/simulate.js +136 -0
- package/dist/src/services/execute/simulate.js.map +1 -0
- package/dist/src/services/execute/utils.d.ts +15 -0
- package/dist/src/services/execute/utils.js +73 -0
- package/dist/src/services/execute/utils.js.map +1 -0
- package/dist/src/services/gasEstimationService.js +6 -5
- package/dist/src/services/gasEstimationService.js.map +1 -0
- package/dist/src/services/index.d.ts +1 -1
- package/dist/src/services/index.js +6 -21
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/indexSealService.js +28 -22
- package/dist/src/services/indexSealService.js.map +1 -0
- package/dist/src/services/proposalCheckService.js +27 -21
- package/dist/src/services/proposalCheckService.js.map +1 -0
- package/dist/src/services/retry/message.d.ts +1 -0
- package/dist/src/services/retry/message.js +52 -0
- package/dist/src/services/retry/message.js.map +1 -0
- package/dist/src/services/retry/packet.d.ts +2 -0
- package/dist/src/services/retry/packet.js +70 -0
- package/dist/src/services/retry/packet.js.map +1 -0
- package/dist/src/services/sealService.js +77 -47
- package/dist/src/services/sealService.js.map +1 -0
- package/dist/src/statusTrackers/failedMessage.js +16 -19
- package/dist/src/statusTrackers/failedMessage.js.map +1 -0
- package/dist/src/statusTrackers/failedPacket.js +26 -45
- package/dist/src/statusTrackers/failedPacket.js.map +1 -0
- package/dist/src/statusTrackers/index.js +8 -20
- package/dist/src/statusTrackers/index.js.map +1 -0
- package/dist/src/statusTrackers/message.d.ts +2 -1
- package/dist/src/statusTrackers/message.js +60 -52
- package/dist/src/statusTrackers/message.js.map +1 -0
- package/dist/src/statusTrackers/packet.d.ts +1 -12
- package/dist/src/statusTrackers/packet.js +137 -149
- package/dist/src/statusTrackers/packet.js.map +1 -0
- package/dist/src/utils/chain-utils.js +8 -6
- package/dist/src/utils/chain-utils.js.map +1 -0
- package/dist/src/utils/gas-limits.d.ts +10 -0
- package/dist/src/utils/gas-limits.js +103 -0
- package/dist/src/utils/gas-limits.js.map +1 -0
- package/dist/src/utils/index.js +4 -16
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.d.ts +3 -3
- package/dist/src/utils/logger.js +1 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/utils/dataStructHelper.js +2 -2
- package/dist/utils/discord.d.ts +2 -2
- package/dist/utils/discord.js +3 -11
- package/dist/utils/idUtils.js +2 -2
- package/dist/utils/s3Service.d.ts +3 -10
- package/dist/utils/s3Service.js +9 -38
- package/dist/utils/signer/address.d.ts +1 -0
- package/dist/utils/signer/asn1-parser.d.ts +1 -0
- package/dist/utils/signer/asn1-parser.js +3 -2
- package/dist/utils/signer/crypto.d.ts +1 -0
- package/dist/utils/signer/crypto.js +4 -3
- package/dist/utils/signer/index.d.ts +0 -1
- package/dist/utils/signer/index.js +0 -1
- package/dist/utils/signer/kms-signer.d.ts +1 -0
- package/dist/utils/signer/signature.d.ts +1 -0
- package/dist/utils/signer/signer.d.ts +1 -0
- package/package.json +5 -3
- package/dist/models/lastBlock.d.ts +0 -28
- package/dist/models/lastBlock.js +0 -27
- package/dist/models/transaction.d.ts +0 -0
- package/dist/models/transaction.js +0 -280
- package/dist/src/constants/gasEstimation.d.ts +0 -8
- package/dist/src/constants/gasEstimation.js +0 -61
- package/dist/src/relayers/proposeRelayer.d.ts +0 -7
- package/dist/src/relayers/proposeRelayer.js +0 -587
- package/dist/src/services/batcherService.d.ts +0 -9
- package/dist/src/services/batcherService.js +0 -197
- package/dist/src/services/executeService.js +0 -209
- package/dist/utils/signer/socketSigner.js +0 -154
- /package/dist/{utils → dl-common/utils}/signer/socketSigner.d.ts +0 -0
|
@@ -1,587 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkAndPropose = exports.getPendingProposePackets = exports.relayPropose = void 0;
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const utils_2 = require("../../dl-common/utils");
|
|
6
|
-
const constants_1 = require("../constants");
|
|
7
|
-
const models_1 = require("../../dl-common/models");
|
|
8
|
-
const dl_core_1 = require("@socket.tech/dl-core");
|
|
9
|
-
const sequelize_1 = require("sequelize");
|
|
10
|
-
const common_1 = require("./common");
|
|
11
|
-
const attestService_1 = require("../services/attestService");
|
|
12
|
-
const services_1 = require("../../dl-common/services");
|
|
13
|
-
const batcherService_1 = require("../services/batcherService");
|
|
14
|
-
const prometheus_config_1 = require("../constants/prometheus.config");
|
|
15
|
-
const relayPropose = async (chainSlug) => {
|
|
16
|
-
if (!constants_1.proposeRelayMode) {
|
|
17
|
-
(0, utils_1.logInfo)({
|
|
18
|
-
info: "PROPOSE_RELAY_MODE_DISABLED",
|
|
19
|
-
messageIds: [],
|
|
20
|
-
packetIds: [],
|
|
21
|
-
});
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const chainSlugs = constants_1.supportedChainSlugs;
|
|
25
|
-
const allPacketsPerChain = await (0, exports.getPendingProposePackets)(chainSlugs);
|
|
26
|
-
await Promise.all(chainSlugs.map(async (chainSlug) => {
|
|
27
|
-
var _a;
|
|
28
|
-
try {
|
|
29
|
-
if (((_a = allPacketsPerChain[chainSlug]) === null || _a === void 0 ? void 0 : _a.length) === 0)
|
|
30
|
-
return;
|
|
31
|
-
(0, utils_1.logInfo)({
|
|
32
|
-
chainSlug,
|
|
33
|
-
info: "PROPOSE_RELAYING",
|
|
34
|
-
packetIds: allPacketsPerChain[chainSlug].map((p) => p.packetId),
|
|
35
|
-
total: allPacketsPerChain[chainSlug].length,
|
|
36
|
-
messageIds: []
|
|
37
|
-
});
|
|
38
|
-
const socketBatcher = await (0, common_1.getSocketBatcher)(chainSlug, { type: "proposeBatch" }, false);
|
|
39
|
-
await sendProposeBatch(chainSlug, (0, common_1.getSocketAddress)(chainSlug), socketBatcher, allPacketsPerChain[chainSlug]);
|
|
40
|
-
(0, utils_1.logInfo)({
|
|
41
|
-
chainSlug,
|
|
42
|
-
info: "PROPOSE_RELAYED",
|
|
43
|
-
packetIds: allPacketsPerChain[chainSlug].map((p) => p.packetId),
|
|
44
|
-
messageIds: []
|
|
45
|
-
});
|
|
46
|
-
(0, utils_1.logInfo)({
|
|
47
|
-
info: "PROPOSE_RELAYED",
|
|
48
|
-
packetIds: allPacketsPerChain[chainSlug].map((p) => p.packetId),
|
|
49
|
-
messageIds: [],
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
console.log(chainSlug, " error in propose relayer: ", error);
|
|
54
|
-
}
|
|
55
|
-
}));
|
|
56
|
-
};
|
|
57
|
-
exports.relayPropose = relayPropose;
|
|
58
|
-
const sendProposeBatch = async (chainSlug, socketAddress, socketBatcher, allPackets) => {
|
|
59
|
-
const packetsAsChunks = [...(0, utils_2.chunks)(allPackets, constants_1.proposeBatchRelayLimit)];
|
|
60
|
-
for (const packets of packetsAsChunks) {
|
|
61
|
-
if (packets.length === 0) {
|
|
62
|
-
console.log("no packets to propose ", chainSlug);
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
const { packetIds, messageIds, packetMap, packetRowIdDetailsMap, messageRowIdDetailsMap, } = createMaps(packets);
|
|
66
|
-
const packetProposalCounts = await getPacketProposalCounts(packets, socketAddress, socketBatcher);
|
|
67
|
-
const packetProposalCountDbUpdates = getPacketProposalCountDbUpdates(packetProposalCounts, packetMap);
|
|
68
|
-
const packetAttestSignatures = await (0, attestService_1.getAndSaveAttestSignatures)(packets, packetProposalCounts);
|
|
69
|
-
let isSuccessful = true;
|
|
70
|
-
let txHash = "";
|
|
71
|
-
let txId = "";
|
|
72
|
-
const batches = await (0, batcherService_1.getBatchDataArgs)(packets, packetAttestSignatures, packetProposalCounts);
|
|
73
|
-
for (const batch of batches) {
|
|
74
|
-
(0, utils_1.logInfo)({
|
|
75
|
-
info: "BATCH_PROPOSE_RELAYING",
|
|
76
|
-
packetIds: batch.proposeBatchDataArgs.map((p) => p[0]),
|
|
77
|
-
messageTableIds: batch.messageRowIds,
|
|
78
|
-
messageIds: [],
|
|
79
|
-
});
|
|
80
|
-
const { proposeRowIds, attestRowIds, messageRowIds } = batch;
|
|
81
|
-
({ txHash, txId, isSuccessful } = await sendBatch(batch, socketAddress, socketBatcher, chainSlug));
|
|
82
|
-
// no point in observing metrics, updating status if the batch transaction is not sent
|
|
83
|
-
if (!isSuccessful)
|
|
84
|
-
continue;
|
|
85
|
-
try {
|
|
86
|
-
observeMetrics(proposeRowIds, attestRowIds, messageRowIds, packetRowIdDetailsMap, messageRowIdDetailsMap);
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
console.log("error in observing metrics: ", error);
|
|
90
|
-
}
|
|
91
|
-
await updateRelayStatus(proposeRowIds, attestRowIds, messageRowIds, isSuccessful, txId, txHash);
|
|
92
|
-
// only update selectedProposalCount if the proposeBatch transaction is sent
|
|
93
|
-
// ideal
|
|
94
|
-
await savePacketUpdates(packetProposalCountDbUpdates);
|
|
95
|
-
(0, utils_1.logInfo)({
|
|
96
|
-
info: "BATCH_PROPOSE_RELAYED",
|
|
97
|
-
packetIds: batch.proposeBatchDataArgs.map((p) => p[0]),
|
|
98
|
-
messageTableIds: batch.messageRowIds,
|
|
99
|
-
messageIds: [],
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
const getPendingProposePackets = async (dstChainSlugs) => {
|
|
105
|
-
const { commonPacketQuery, commonMessageQuery } = getCommonPacketMessageQueries(dstChainSlugs);
|
|
106
|
-
const notProposedPackets = await getNotProposedPackets(commonPacketQuery, commonMessageQuery);
|
|
107
|
-
const notAttestedFastPackets = await getNotAttestedFastPackets(commonPacketQuery, commonMessageQuery);
|
|
108
|
-
const executionPendingPackets = await getExecutionPendingPackets(commonPacketQuery, commonMessageQuery);
|
|
109
|
-
const packets = [
|
|
110
|
-
...notProposedPackets,
|
|
111
|
-
...notAttestedFastPackets,
|
|
112
|
-
...executionPendingPackets,
|
|
113
|
-
];
|
|
114
|
-
const packetsPerChain = {};
|
|
115
|
-
packets.map((packet) => {
|
|
116
|
-
if (!packetsPerChain[packet.dstChainSlug])
|
|
117
|
-
packetsPerChain[packet.dstChainSlug] = [];
|
|
118
|
-
packetsPerChain[packet.dstChainSlug].push(packet);
|
|
119
|
-
});
|
|
120
|
-
if (packets.length > 0) {
|
|
121
|
-
(0, utils_1.logInfo)({
|
|
122
|
-
info: "PENDING_DST_TXS",
|
|
123
|
-
nonProposedIds: notProposedPackets.map((p) => p.packetId),
|
|
124
|
-
notProposedPackets: notProposedPackets.length,
|
|
125
|
-
nonAttestedIds: notAttestedFastPackets.map((p) => p.packetId),
|
|
126
|
-
notAttestedFastPackets: notAttestedFastPackets.length,
|
|
127
|
-
executionPendingIds: executionPendingPackets.map((p) => p.packetId),
|
|
128
|
-
executionPendingPackets: executionPendingPackets.length,
|
|
129
|
-
messageIds: [],
|
|
130
|
-
packetIds: [],
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
return packetsPerChain;
|
|
134
|
-
};
|
|
135
|
-
exports.getPendingProposePackets = getPendingProposePackets;
|
|
136
|
-
const getCommonPacketMessageQueries = (dstChainSlugs) => {
|
|
137
|
-
const commonPacketQuery = {
|
|
138
|
-
srcChainSlug: {
|
|
139
|
-
[sequelize_1.Op.in]: constants_1.supportedChainSlugs,
|
|
140
|
-
},
|
|
141
|
-
dstChainSlug: {
|
|
142
|
-
[sequelize_1.Op.in]: dstChainSlugs,
|
|
143
|
-
},
|
|
144
|
-
isSealed: true,
|
|
145
|
-
isFullyExecuted: false,
|
|
146
|
-
tripReason: models_1.TripReason.NO,
|
|
147
|
-
proposeRelayStatus: {
|
|
148
|
-
[sequelize_1.Op.notIn]: [
|
|
149
|
-
models_1.ProposeRelayStatus.PROPOSING,
|
|
150
|
-
models_1.ProposeRelayStatus.PROPOSE_FAILED,
|
|
151
|
-
],
|
|
152
|
-
},
|
|
153
|
-
attestRelayStatus: {
|
|
154
|
-
[sequelize_1.Op.notIn]: [
|
|
155
|
-
models_1.AttestRelayStatus.ATTESTING,
|
|
156
|
-
models_1.AttestRelayStatus.ATTEST_FAILED,
|
|
157
|
-
],
|
|
158
|
-
},
|
|
159
|
-
};
|
|
160
|
-
const commonMessageQuery = {
|
|
161
|
-
isExecuted: false,
|
|
162
|
-
inboundSuccess: true,
|
|
163
|
-
retry: true,
|
|
164
|
-
executeRelayStatus: models_1.ExecutionRelayStatus.NO,
|
|
165
|
-
executeSignature: {
|
|
166
|
-
[sequelize_1.Op.ne]: null,
|
|
167
|
-
[sequelize_1.Op.not]: "",
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
return { commonPacketQuery, commonMessageQuery };
|
|
171
|
-
};
|
|
172
|
-
const getNotProposedPackets = async (commonPacketQuery, commonMessageQuery) => {
|
|
173
|
-
// this will fetch all integration type packets for proposal. we will batch fast ones, propose optimistic and
|
|
174
|
-
// native ones and then wait for their allowPacket to turn true
|
|
175
|
-
return (await models_1.Packet.findAll({
|
|
176
|
-
limit: constants_1.proposeBatchQueryLimit,
|
|
177
|
-
where: {
|
|
178
|
-
isProposed: false,
|
|
179
|
-
...commonPacketQuery,
|
|
180
|
-
},
|
|
181
|
-
include: [
|
|
182
|
-
{
|
|
183
|
-
model: models_1.Message,
|
|
184
|
-
where: {
|
|
185
|
-
// as: 'Messages',
|
|
186
|
-
...commonMessageQuery,
|
|
187
|
-
},
|
|
188
|
-
// to get packets even though there are no messages. This is required
|
|
189
|
-
// as we need to propose, attest the packet even if the message have inboundSuccess
|
|
190
|
-
// as false
|
|
191
|
-
required: false,
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
model: models_1.AttestSignature,
|
|
195
|
-
},
|
|
196
|
-
],
|
|
197
|
-
order: [[sequelize_1.Sequelize.col("Packet.updatedAt"), "ASC"]],
|
|
198
|
-
}));
|
|
199
|
-
};
|
|
200
|
-
const getNotAttestedFastPackets = async (commonPacketQuery, commonMessageQuery) => {
|
|
201
|
-
// for fast integration packets whose attestation couldnt be batched before. try again.
|
|
202
|
-
// no point in taking native or optimistic packets as they dont need to be attested.
|
|
203
|
-
return (await models_1.Packet.findAll({
|
|
204
|
-
limit: constants_1.proposeBatchQueryLimit,
|
|
205
|
-
where: {
|
|
206
|
-
isProposed: true,
|
|
207
|
-
isAttested: false,
|
|
208
|
-
...commonPacketQuery,
|
|
209
|
-
integrationType: {
|
|
210
|
-
[sequelize_1.Op.in]: [dl_core_1.IntegrationTypes.fast, dl_core_1.IntegrationTypes.fast2],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
include: [
|
|
214
|
-
{
|
|
215
|
-
model: models_1.Message,
|
|
216
|
-
where: {
|
|
217
|
-
...commonMessageQuery,
|
|
218
|
-
},
|
|
219
|
-
// to get packets even though there are no messages. This is required
|
|
220
|
-
// as we need to propose, attest the packet even if the message have inboundSuccess
|
|
221
|
-
// as false
|
|
222
|
-
required: false,
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
model: models_1.AttestSignature,
|
|
226
|
-
},
|
|
227
|
-
],
|
|
228
|
-
order: [[sequelize_1.Sequelize.col("Packet.updatedAt"), "ASC"]],
|
|
229
|
-
}));
|
|
230
|
-
};
|
|
231
|
-
const getExecutionPendingPackets = async (commonPacketQuery, commonMessageQuery) => {
|
|
232
|
-
// this contains packets where isAttested/isVerified is true, but message is not executed yet.
|
|
233
|
-
// this will include packets only if there is a valid message that is ready to be executed (required:true)
|
|
234
|
-
return (await models_1.Packet.findAll({
|
|
235
|
-
limit: constants_1.proposeBatchQueryLimit,
|
|
236
|
-
where: {
|
|
237
|
-
isProposed: true,
|
|
238
|
-
...commonPacketQuery,
|
|
239
|
-
[sequelize_1.Op.or]: [
|
|
240
|
-
{
|
|
241
|
-
integrationType: {
|
|
242
|
-
[sequelize_1.Op.in]: [dl_core_1.IntegrationTypes.fast, dl_core_1.IntegrationTypes.fast2],
|
|
243
|
-
},
|
|
244
|
-
isAttested: true,
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
integrationType: {
|
|
248
|
-
[sequelize_1.Op.in]: [dl_core_1.IntegrationTypes.optimistic, dl_core_1.IntegrationTypes.native],
|
|
249
|
-
},
|
|
250
|
-
isVerified: true,
|
|
251
|
-
},
|
|
252
|
-
],
|
|
253
|
-
},
|
|
254
|
-
include: [
|
|
255
|
-
{
|
|
256
|
-
model: models_1.Message,
|
|
257
|
-
where: {
|
|
258
|
-
...commonMessageQuery,
|
|
259
|
-
},
|
|
260
|
-
// to get packets only if there are messages with inboundSuccess true
|
|
261
|
-
required: true,
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
model: models_1.AttestSignature,
|
|
265
|
-
},
|
|
266
|
-
],
|
|
267
|
-
order: [[sequelize_1.Sequelize.col("Packet.updatedAt"), "ASC"]],
|
|
268
|
-
}));
|
|
269
|
-
};
|
|
270
|
-
const getPacketProposalCounts = async (packets, socketAddress, socketBatcher) => {
|
|
271
|
-
const packetProposalCounts = {};
|
|
272
|
-
const getProposalCountFromContractPacketIds = [];
|
|
273
|
-
await Promise.all(packets.map(async (packet) => {
|
|
274
|
-
const { packetId, selectedProposalCount } = packet;
|
|
275
|
-
if (selectedProposalCount !== undefined &&
|
|
276
|
-
selectedProposalCount !== null) {
|
|
277
|
-
packetProposalCounts[packetId] = {
|
|
278
|
-
count: selectedProposalCount,
|
|
279
|
-
receivedFromContract: false,
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
else {
|
|
283
|
-
getProposalCountFromContractPacketIds.push(packet.packetId);
|
|
284
|
-
}
|
|
285
|
-
}));
|
|
286
|
-
const proposalCountsFromContract = await socketBatcher.getProposalCountBatch(socketAddress, getProposalCountFromContractPacketIds);
|
|
287
|
-
getProposalCountFromContractPacketIds.forEach((packetId, index) => {
|
|
288
|
-
packetProposalCounts[packetId] = {
|
|
289
|
-
count: proposalCountsFromContract[index].toNumber(),
|
|
290
|
-
receivedFromContract: true,
|
|
291
|
-
};
|
|
292
|
-
});
|
|
293
|
-
return packetProposalCounts;
|
|
294
|
-
};
|
|
295
|
-
const updateRelayStatus = async (proposeRowIds, attestRowIds, messageRowIds, isSuccessful, txId, txHash) => {
|
|
296
|
-
// if the batch transaction is successful, then retain the existing status
|
|
297
|
-
// if the transactionHash exists then it will be updated else it will be empty
|
|
298
|
-
try {
|
|
299
|
-
const proposeRelayStatus = isSuccessful
|
|
300
|
-
? models_1.ProposeRelayStatus.PROPOSING
|
|
301
|
-
: models_1.ProposeRelayStatus.NO;
|
|
302
|
-
const attestRelayStatus = isSuccessful
|
|
303
|
-
? models_1.AttestRelayStatus.ATTESTING
|
|
304
|
-
: models_1.AttestRelayStatus.NO;
|
|
305
|
-
const executeRelayStatus = isSuccessful
|
|
306
|
-
? models_1.ExecutionRelayStatus.EXECUTING
|
|
307
|
-
: models_1.ExecutionRelayStatus.NO;
|
|
308
|
-
(0, utils_1.logInfo)({
|
|
309
|
-
info: "PROPOSE_TX_DB_UPDATE",
|
|
310
|
-
proposeRowIds,
|
|
311
|
-
txId,
|
|
312
|
-
txHash,
|
|
313
|
-
messageIds: [],
|
|
314
|
-
packetIds: [],
|
|
315
|
-
});
|
|
316
|
-
// update propose status
|
|
317
|
-
if (proposeRowIds.length > 0)
|
|
318
|
-
await models_1.Packet.update({
|
|
319
|
-
proposeTxId: txId,
|
|
320
|
-
proposeTxHash: txHash,
|
|
321
|
-
proposeRelayStatus,
|
|
322
|
-
}, {
|
|
323
|
-
where: {
|
|
324
|
-
id: {
|
|
325
|
-
[sequelize_1.Op.in]: proposeRowIds,
|
|
326
|
-
},
|
|
327
|
-
},
|
|
328
|
-
});
|
|
329
|
-
(0, utils_1.logInfo)({
|
|
330
|
-
info: "ATTEST_TX_DB_UPDATE",
|
|
331
|
-
attestRowIds,
|
|
332
|
-
txId,
|
|
333
|
-
txHash,
|
|
334
|
-
messageIds: [],
|
|
335
|
-
packetIds: [],
|
|
336
|
-
});
|
|
337
|
-
// update attest status
|
|
338
|
-
if (attestRowIds.length > 0)
|
|
339
|
-
await models_1.Packet.update({
|
|
340
|
-
attestTxId: txId,
|
|
341
|
-
attestTxHash: txHash,
|
|
342
|
-
attestRelayStatus,
|
|
343
|
-
}, {
|
|
344
|
-
where: {
|
|
345
|
-
id: {
|
|
346
|
-
[sequelize_1.Op.in]: attestRowIds,
|
|
347
|
-
},
|
|
348
|
-
},
|
|
349
|
-
});
|
|
350
|
-
(0, utils_1.logInfo)({
|
|
351
|
-
info: "EXECUTE_TX_DB_UPDATE",
|
|
352
|
-
messageRowIds,
|
|
353
|
-
txId,
|
|
354
|
-
txHash,
|
|
355
|
-
messageIds: [],
|
|
356
|
-
packetIds: [],
|
|
357
|
-
});
|
|
358
|
-
// update execute status
|
|
359
|
-
if (messageRowIds.length > 0)
|
|
360
|
-
await models_1.Message.update({
|
|
361
|
-
executeTxId: txId,
|
|
362
|
-
executeTxHash: txHash,
|
|
363
|
-
executeRelayStatus,
|
|
364
|
-
}, {
|
|
365
|
-
where: {
|
|
366
|
-
id: {
|
|
367
|
-
[sequelize_1.Op.in]: messageRowIds,
|
|
368
|
-
},
|
|
369
|
-
},
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
catch (err) {
|
|
373
|
-
utils_1.logger.error(`Failed to update the transactionHash and isRelaying Status after proposeBatch call`, err);
|
|
374
|
-
}
|
|
375
|
-
};
|
|
376
|
-
const observeMetrics = (proposeRowIds, attestRowIds, messageRowIds, packetRowIdDetailsMap, messageRowIdDetailsMap) => {
|
|
377
|
-
proposeRowIds.map((rowId) => {
|
|
378
|
-
(0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.proposeRelay.txDiffHistogram, {
|
|
379
|
-
labels: {
|
|
380
|
-
[prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packetRowIdDetailsMap[rowId].srcChainSlug,
|
|
381
|
-
[prometheus_config_1.Labels.DST_CHAIN_SLUG]: packetRowIdDetailsMap[rowId].dstChainSlug,
|
|
382
|
-
[prometheus_config_1.Labels.INTEGRATION_TYPE]: packetRowIdDetailsMap[rowId].integrationType,
|
|
383
|
-
},
|
|
384
|
-
timeDiff: (0, utils_2.currentTimestampInSeconds)() - packetRowIdDetailsMap[rowId].outboundTime,
|
|
385
|
-
});
|
|
386
|
-
const sealIndexTime = packetRowIdDetailsMap[rowId].sealIndexTime;
|
|
387
|
-
// in case of arbitrum, sometimes we end up relaying propose before we get sealIndex request.
|
|
388
|
-
// to avoid adding such metrics, check for sealIndex value
|
|
389
|
-
if (sealIndexTime) {
|
|
390
|
-
(0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.proposeRelay.relayerHistogram, {
|
|
391
|
-
labels: {
|
|
392
|
-
[prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packetRowIdDetailsMap[rowId].srcChainSlug,
|
|
393
|
-
[prometheus_config_1.Labels.DST_CHAIN_SLUG]: packetRowIdDetailsMap[rowId].dstChainSlug,
|
|
394
|
-
[prometheus_config_1.Labels.INTEGRATION_TYPE]: packetRowIdDetailsMap[rowId].integrationType,
|
|
395
|
-
},
|
|
396
|
-
timeDiff: (0, utils_2.currentTimestampInSeconds)() - sealIndexTime,
|
|
397
|
-
});
|
|
398
|
-
}
|
|
399
|
-
});
|
|
400
|
-
attestRowIds.map((rowId) => {
|
|
401
|
-
(0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.attestRelay.txDiffHistogram, {
|
|
402
|
-
labels: {
|
|
403
|
-
[prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packetRowIdDetailsMap[rowId].srcChainSlug,
|
|
404
|
-
[prometheus_config_1.Labels.DST_CHAIN_SLUG]: packetRowIdDetailsMap[rowId].dstChainSlug,
|
|
405
|
-
[prometheus_config_1.Labels.INTEGRATION_TYPE]: packetRowIdDetailsMap[rowId].integrationType,
|
|
406
|
-
},
|
|
407
|
-
timeDiff: (0, utils_2.currentTimestampInSeconds)() - packetRowIdDetailsMap[rowId].outboundTime,
|
|
408
|
-
});
|
|
409
|
-
});
|
|
410
|
-
messageRowIds.map((rowId) => {
|
|
411
|
-
(0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.executeRelay.txDiffHistogram, {
|
|
412
|
-
labels: {
|
|
413
|
-
[prometheus_config_1.Labels.SRC_CHAIN_SLUG]: messageRowIdDetailsMap[rowId].srcChainSlug,
|
|
414
|
-
[prometheus_config_1.Labels.DST_CHAIN_SLUG]: messageRowIdDetailsMap[rowId].dstChainSlug,
|
|
415
|
-
[prometheus_config_1.Labels.INTEGRATION_TYPE]: messageRowIdDetailsMap[rowId].integrationType,
|
|
416
|
-
},
|
|
417
|
-
timeDiff: (0, utils_2.currentTimestampInSeconds)() -
|
|
418
|
-
messageRowIdDetailsMap[rowId].outboundTime,
|
|
419
|
-
});
|
|
420
|
-
});
|
|
421
|
-
};
|
|
422
|
-
const getPacketProposalCountDbUpdates = (packetProposalCounts, packetMap) => {
|
|
423
|
-
const packetProposalCountDbUpdates = [];
|
|
424
|
-
for (const packetId in packetProposalCounts) {
|
|
425
|
-
if (packetMap[packetId].selectedProposalCount)
|
|
426
|
-
continue;
|
|
427
|
-
packetProposalCountDbUpdates.push({
|
|
428
|
-
packetId,
|
|
429
|
-
selectedProposalCount: packetProposalCounts[packetId].count,
|
|
430
|
-
});
|
|
431
|
-
}
|
|
432
|
-
return packetProposalCountDbUpdates;
|
|
433
|
-
};
|
|
434
|
-
const createMaps = (packets) => {
|
|
435
|
-
const packetIds = [];
|
|
436
|
-
const messageIds = [];
|
|
437
|
-
const packetMap = {};
|
|
438
|
-
const packetRowIdDetailsMap = {};
|
|
439
|
-
const messageRowIdDetailsMap = {};
|
|
440
|
-
packets.map((packet) => {
|
|
441
|
-
var _a, _b;
|
|
442
|
-
packetIds.push(packet.packetId);
|
|
443
|
-
const { integrationType, srcChainSlug, dstChainSlug, outboundTime, sealIndexTime, } = packet;
|
|
444
|
-
packetRowIdDetailsMap[packet.id] = {
|
|
445
|
-
outboundTime,
|
|
446
|
-
sealIndexTime,
|
|
447
|
-
srcChainSlug,
|
|
448
|
-
dstChainSlug,
|
|
449
|
-
integrationType,
|
|
450
|
-
};
|
|
451
|
-
packetMap[packet.packetId] = packet;
|
|
452
|
-
if ((_a = packet.Messages) === null || _a === void 0 ? void 0 : _a.length)
|
|
453
|
-
(_b = packet.Messages) === null || _b === void 0 ? void 0 : _b.map((message) => {
|
|
454
|
-
messageIds.push(message.messageId);
|
|
455
|
-
messageRowIdDetailsMap[message.id] = {
|
|
456
|
-
outboundTime: message.outboundTime,
|
|
457
|
-
srcChainSlug,
|
|
458
|
-
dstChainSlug,
|
|
459
|
-
integrationType,
|
|
460
|
-
};
|
|
461
|
-
});
|
|
462
|
-
});
|
|
463
|
-
return {
|
|
464
|
-
packetIds,
|
|
465
|
-
messageIds,
|
|
466
|
-
packetMap,
|
|
467
|
-
packetRowIdDetailsMap,
|
|
468
|
-
messageRowIdDetailsMap,
|
|
469
|
-
};
|
|
470
|
-
};
|
|
471
|
-
const sendBatch = async (batch, socketAddress, socketBatcher, chainSlug) => {
|
|
472
|
-
let isSuccessful = true;
|
|
473
|
-
let txHash = "";
|
|
474
|
-
let txId = "";
|
|
475
|
-
const { proposeBatchDataArgs, attestBatchDataArgs, executeBatchDataArgs, totalMsgValue, totalGasLimit, proposeRowIds, attestRowIds, messageRowIds, } = batch;
|
|
476
|
-
(0, utils_1.logInfo)({
|
|
477
|
-
info: "PROPOSE_RELAYING",
|
|
478
|
-
packetIds: proposeBatchDataArgs.map((p) => p[0]),
|
|
479
|
-
proposeBatchDataArgs,
|
|
480
|
-
attestBatchDataArgs,
|
|
481
|
-
executeBatchDataArgs,
|
|
482
|
-
proposeRowIds,
|
|
483
|
-
attestRowIds,
|
|
484
|
-
messageRowIds,
|
|
485
|
-
messageIds: [],
|
|
486
|
-
});
|
|
487
|
-
try {
|
|
488
|
-
if (proposeBatchDataArgs.length === 0 &&
|
|
489
|
-
attestBatchDataArgs.length === 0 &&
|
|
490
|
-
executeBatchDataArgs.length === 0) {
|
|
491
|
-
return { txId, txHash, isSuccessful: false };
|
|
492
|
-
}
|
|
493
|
-
const txn = await socketBatcher.sendBatch(socketAddress,
|
|
494
|
-
// switchboardAddress, // this may change if we have multiple switchboards. this works only for
|
|
495
|
-
// fast switchboard case
|
|
496
|
-
[], // for sealBatch
|
|
497
|
-
proposeBatchDataArgs, attestBatchDataArgs, executeBatchDataArgs, {
|
|
498
|
-
gasLimit: totalGasLimit,
|
|
499
|
-
value: totalMsgValue.toHexString(),
|
|
500
|
-
});
|
|
501
|
-
txHash = txn.hash;
|
|
502
|
-
// @ts-expect-error
|
|
503
|
-
txId = txn.txId;
|
|
504
|
-
(0, utils_1.logInfo)({
|
|
505
|
-
info: "PROPOSE_RELAYED",
|
|
506
|
-
packetIds: proposeBatchDataArgs.map((p) => p[0]),
|
|
507
|
-
txHash,
|
|
508
|
-
txId,
|
|
509
|
-
messageIds: [],
|
|
510
|
-
});
|
|
511
|
-
// metrics.map((m) => observeHistogram(metric.txDiffHistogram, m));
|
|
512
|
-
prometheus_config_1.relayMetrics.proposeRelay.counter.inc(proposeRowIds.length);
|
|
513
|
-
prometheus_config_1.relayMetrics.attestRelay.counter.inc(attestRowIds.length);
|
|
514
|
-
prometheus_config_1.relayMetrics.executeRelay.counter.inc(messageRowIds.length);
|
|
515
|
-
}
|
|
516
|
-
catch (err) {
|
|
517
|
-
(0, utils_1.logError)({
|
|
518
|
-
info: "PROPOSE_RELAY_FAILED",
|
|
519
|
-
packetIds: proposeBatchDataArgs.map((p) => p[0]),
|
|
520
|
-
reason: err,
|
|
521
|
-
messageIds: [],
|
|
522
|
-
});
|
|
523
|
-
isSuccessful = false;
|
|
524
|
-
}
|
|
525
|
-
return { txHash, txId, isSuccessful };
|
|
526
|
-
};
|
|
527
|
-
const savePacketUpdates = async (dbUpdates) => {
|
|
528
|
-
try {
|
|
529
|
-
(0, utils_1.logInfo)({
|
|
530
|
-
info: "SAVING_PROPOSAL_COUNT",
|
|
531
|
-
packetIds: dbUpdates.map((p) => p.packetId),
|
|
532
|
-
messageIds: [],
|
|
533
|
-
});
|
|
534
|
-
// TODO: fix this
|
|
535
|
-
// @ts-expect-error
|
|
536
|
-
await models_1.Packet.bulkCreate(dbUpdates, {
|
|
537
|
-
updateOnDuplicate: ["selectedProposalCount"],
|
|
538
|
-
});
|
|
539
|
-
(0, utils_1.logInfo)({
|
|
540
|
-
info: "SAVED_PROPOSAL_COUNT",
|
|
541
|
-
packetIds: dbUpdates.map((p) => p.packetId),
|
|
542
|
-
messageIds: [],
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
|
-
catch (error) {
|
|
546
|
-
utils_1.logger.error("Error while saving selectedProposalCount updates", error);
|
|
547
|
-
throw new Error(`Error while saving selectedProposalCount updates ${error === null || error === void 0 ? void 0 : error.message}`);
|
|
548
|
-
}
|
|
549
|
-
};
|
|
550
|
-
const checkAndPropose = async () => {
|
|
551
|
-
var _a, _b;
|
|
552
|
-
try {
|
|
553
|
-
// check if any pending message on any chain. If found, add message to queue
|
|
554
|
-
// and return.
|
|
555
|
-
const packetsPerChain = await (0, exports.getPendingProposePackets)(constants_1.supportedChainSlugs);
|
|
556
|
-
for (const chainSlug of constants_1.supportedChainSlugs) {
|
|
557
|
-
if (!((_a = packetsPerChain[chainSlug]) === null || _a === void 0 ? void 0 : _a.length))
|
|
558
|
-
continue;
|
|
559
|
-
// const messageIds = packetsPerChain[chainSlug].map((p) => {
|
|
560
|
-
// if (!p.Messages) throw new Error("Message id not found!");
|
|
561
|
-
// return p.Messages[0].messageId;
|
|
562
|
-
// });
|
|
563
|
-
(0, utils_1.logInfo)({
|
|
564
|
-
info: "QUEUING_PROPOSALS",
|
|
565
|
-
chainSlug,
|
|
566
|
-
packets: (_b = packetsPerChain[chainSlug]) === null || _b === void 0 ? void 0 : _b.length,
|
|
567
|
-
packetIds: packetsPerChain[chainSlug].map((p) => p.packetId),
|
|
568
|
-
messageIds: [],
|
|
569
|
-
});
|
|
570
|
-
await (0, services_1.sendStandardSqsMessage)(constants_1.SQS_BASE_URL + constants_1.QueueName.BATCHER_TASK_QUEUE, {
|
|
571
|
-
type: constants_1.TaskNames.RELAY_PROPOSE,
|
|
572
|
-
data: { counter: Math.floor(Math.random() * 100) },
|
|
573
|
-
});
|
|
574
|
-
(0, utils_1.logInfo)({
|
|
575
|
-
info: "QUEUED_PROPOSALS",
|
|
576
|
-
packetIds: packetsPerChain[chainSlug].map((p) => p.packetId),
|
|
577
|
-
messageIds: [],
|
|
578
|
-
});
|
|
579
|
-
// @review why break?
|
|
580
|
-
break;
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
catch (error) {
|
|
584
|
-
console.log("error in checkAndPropose: ", error);
|
|
585
|
-
}
|
|
586
|
-
};
|
|
587
|
-
exports.checkAndPropose = checkAndPropose;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type ChainSlug } from "@socket.tech/dl-core";
|
|
2
|
-
import { type PacketAttestSignatures, type PacketProposalCounts, type PacketMessageAttestJoin, type BatchData } from "../constants";
|
|
3
|
-
export declare const calculateBatchGasLimit: (dstChainSlug: ChainSlug, currentBatch: BatchData) => Promise<BatchData>;
|
|
4
|
-
export declare const checkGasLimitAndAddToBatch: (dstChainSlug: ChainSlug, currentGasLimit: number, currentBatch: BatchData, batchArgsArray: BatchData[]) => Promise<{
|
|
5
|
-
currentGasLimit: number;
|
|
6
|
-
batchArgsArray: BatchData[];
|
|
7
|
-
currentBatch: BatchData;
|
|
8
|
-
}>;
|
|
9
|
-
export declare const getBatchDataArgs: (packets: PacketMessageAttestJoin[], packetAttestSignatures: PacketAttestSignatures, packetProposalCounts: PacketProposalCounts) => Promise<BatchData[]>;
|