@socket.tech/dl-common 1.0.7 → 1.0.9

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 (186) hide show
  1. package/dist/index.js +14 -30
  2. package/dist/utils/discord.d.ts +2 -2
  3. package/dist/utils/discord.js +11 -3
  4. package/dist/utils/test.d.ts +1 -0
  5. package/dist/utils/test.js +10 -0
  6. package/package.json +2 -2
  7. package/dist/dl-common/constants/confirmations.d.ts +0 -5
  8. package/dist/dl-common/constants/confirmations.js +0 -17
  9. package/dist/dl-common/constants/enums.d.ts +0 -44
  10. package/dist/dl-common/constants/enums.js +0 -52
  11. package/dist/dl-common/constants/index.d.ts +0 -3
  12. package/dist/dl-common/constants/index.js +0 -19
  13. package/dist/dl-common/constants/types.d.ts +0 -126
  14. package/dist/dl-common/constants/types.js +0 -45
  15. package/dist/dl-common/constants/waitTime.d.ts +0 -8
  16. package/dist/dl-common/constants/waitTime.js +0 -49
  17. package/dist/dl-common/index.d.ts +0 -4
  18. package/dist/dl-common/index.js +0 -20
  19. package/dist/dl-common/models/attestSignature.d.ts +0 -35
  20. package/dist/dl-common/models/attestSignature.js +0 -53
  21. package/dist/dl-common/models/attestation.d.ts +0 -70
  22. package/dist/dl-common/models/attestation.js +0 -86
  23. package/dist/dl-common/models/index.d.ts +0 -7
  24. package/dist/dl-common/models/index.js +0 -23
  25. package/dist/dl-common/models/lastBlock.d.ts +0 -28
  26. package/dist/dl-common/models/lastBlock.js +0 -27
  27. package/dist/dl-common/models/message.d.ts +0 -166
  28. package/dist/dl-common/models/message.js +0 -183
  29. package/dist/dl-common/models/packet.d.ts +0 -241
  30. package/dist/dl-common/models/packet.js +0 -250
  31. package/dist/dl-common/models/proposal.d.ts +0 -127
  32. package/dist/dl-common/models/proposal.js +0 -141
  33. package/dist/dl-common/models/switchboard.d.ts +0 -69
  34. package/dist/dl-common/models/switchboard.js +0 -92
  35. package/dist/dl-common/models/transaction.d.ts +0 -0
  36. package/dist/dl-common/models/transaction.js +0 -280
  37. package/dist/dl-common/services/cacheService.d.ts +0 -14
  38. package/dist/dl-common/services/cacheService.js +0 -77
  39. package/dist/dl-common/services/eventBridgeService.d.ts +0 -8
  40. package/dist/dl-common/services/eventBridgeService.js +0 -40
  41. package/dist/dl-common/services/index.d.ts +0 -3
  42. package/dist/dl-common/services/index.js +0 -20
  43. package/dist/dl-common/services/queueService.d.ts +0 -10
  44. package/dist/dl-common/services/queueService.js +0 -62
  45. package/dist/dl-common/utils/address.d.ts +0 -2
  46. package/dist/dl-common/utils/address.js +0 -8
  47. package/dist/dl-common/utils/axios.d.ts +0 -2
  48. package/dist/dl-common/utils/axios.js +0 -54
  49. package/dist/dl-common/utils/dataStructHelper.d.ts +0 -2
  50. package/dist/dl-common/utils/dataStructHelper.js +0 -10
  51. package/dist/dl-common/utils/discord.d.ts +0 -2
  52. package/dist/dl-common/utils/discord.js +0 -35
  53. package/dist/dl-common/utils/ethersAwsKmsSigner.d.ts +0 -2
  54. package/dist/dl-common/utils/ethersAwsKmsSigner.js +0 -26
  55. package/dist/dl-common/utils/eventGetter.d.ts +0 -4
  56. package/dist/dl-common/utils/eventGetter.js +0 -50
  57. package/dist/dl-common/utils/extraUtils.d.ts +0 -32
  58. package/dist/dl-common/utils/extraUtils.js +0 -103
  59. package/dist/dl-common/utils/idUtils.d.ts +0 -14
  60. package/dist/dl-common/utils/idUtils.js +0 -50
  61. package/dist/dl-common/utils/index.d.ts +0 -13
  62. package/dist/dl-common/utils/index.js +0 -29
  63. package/dist/dl-common/utils/relaySigner.d.ts +0 -21
  64. package/dist/dl-common/utils/relaySigner.js +0 -68
  65. package/dist/dl-common/utils/s3Service.d.ts +0 -5
  66. package/dist/dl-common/utils/s3Service.js +0 -45
  67. package/dist/dl-common/utils/secretManagerService.d.ts +0 -2
  68. package/dist/dl-common/utils/secretManagerService.js +0 -33
  69. package/dist/dl-common/utils/signer/adapter.d.ts +0 -18
  70. package/dist/dl-common/utils/signer/adapter.js +0 -71
  71. package/dist/dl-common/utils/signer/address.d.ts +0 -10
  72. package/dist/dl-common/utils/signer/address.js +0 -42
  73. package/dist/dl-common/utils/signer/asn1-parser.d.ts +0 -11
  74. package/dist/dl-common/utils/signer/asn1-parser.js +0 -80
  75. package/dist/dl-common/utils/signer/crypto.d.ts +0 -6
  76. package/dist/dl-common/utils/signer/crypto.js +0 -34
  77. package/dist/dl-common/utils/signer/index.d.ts +0 -4
  78. package/dist/dl-common/utils/signer/index.js +0 -20
  79. package/dist/dl-common/utils/signer/kms-ethers-signer.d.ts +0 -19
  80. package/dist/dl-common/utils/signer/kms-ethers-signer.js +0 -32
  81. package/dist/dl-common/utils/signer/kms-signer.d.ts +0 -14
  82. package/dist/dl-common/utils/signer/kms-signer.js +0 -46
  83. package/dist/dl-common/utils/signer/signature.d.ts +0 -17
  84. package/dist/dl-common/utils/signer/signature.js +0 -65
  85. package/dist/dl-common/utils/signer/signer.d.ts +0 -7
  86. package/dist/dl-common/utils/signer/signer.js +0 -2
  87. package/dist/dl-common/utils/time.d.ts +0 -2
  88. package/dist/dl-common/utils/time.js +0 -7
  89. package/dist/src/constants/batcherModes.d.ts +0 -7
  90. package/dist/src/constants/batcherModes.js +0 -56
  91. package/dist/src/constants/config.d.ts +0 -39
  92. package/dist/src/constants/config.js +0 -77
  93. package/dist/src/constants/enums.d.ts +0 -21
  94. package/dist/src/constants/enums.js +0 -27
  95. package/dist/src/constants/gasEstimation.d.ts +0 -8
  96. package/dist/src/constants/gasEstimation.js +0 -61
  97. package/dist/src/constants/index.d.ts +0 -11
  98. package/dist/src/constants/index.js +0 -28
  99. package/dist/src/constants/limits.d.ts +0 -21
  100. package/dist/src/constants/limits.js +0 -91
  101. package/dist/src/constants/prometheus.config.d.ts +0 -43
  102. package/dist/src/constants/prometheus.config.js +0 -316
  103. package/dist/src/constants/relayer.d.ts +0 -6
  104. package/dist/src/constants/relayer.js +0 -15
  105. package/dist/src/constants/s3Config.d.ts +0 -13
  106. package/dist/src/constants/s3Config.js +0 -61
  107. package/dist/src/constants/stageConfig.d.ts +0 -7
  108. package/dist/src/constants/stageConfig.js +0 -24
  109. package/dist/src/constants/types.d.ts +0 -45
  110. package/dist/src/constants/types.js +0 -2
  111. package/dist/src/constants/watchers.d.ts +0 -15
  112. package/dist/src/constants/watchers.js +0 -137
  113. package/dist/src/controllers/index.d.ts +0 -0
  114. package/dist/src/controllers/index.js +0 -3
  115. package/dist/src/db/associations.d.ts +0 -1
  116. package/dist/src/db/associations.js +0 -46
  117. package/dist/src/db/connection.d.ts +0 -4
  118. package/dist/src/db/connection.js +0 -73
  119. package/dist/src/db/index.d.ts +0 -2
  120. package/dist/src/db/index.js +0 -18
  121. package/dist/src/db/init.d.ts +0 -2
  122. package/dist/src/db/init.js +0 -27
  123. package/dist/src/handlers/common.d.ts +0 -2
  124. package/dist/src/handlers/common.js +0 -59
  125. package/dist/src/handlers/cronHandler.d.ts +0 -10
  126. package/dist/src/handlers/cronHandler.js +0 -268
  127. package/dist/src/handlers/executeHandler.d.ts +0 -3
  128. package/dist/src/handlers/executeHandler.js +0 -66
  129. package/dist/src/handlers/handler.d.ts +0 -2
  130. package/dist/src/handlers/handler.js +0 -29
  131. package/dist/src/handlers/proposeHandler.d.ts +0 -3
  132. package/dist/src/handlers/proposeHandler.js +0 -69
  133. package/dist/src/handlers/routes.d.ts +0 -2
  134. package/dist/src/handlers/routes.js +0 -26
  135. package/dist/src/handlers/sealHandler.d.ts +0 -4
  136. package/dist/src/handlers/sealHandler.js +0 -245
  137. package/dist/src/handlers/statusHandler.d.ts +0 -5
  138. package/dist/src/handlers/statusHandler.js +0 -116
  139. package/dist/src/handlers/taskHandler.d.ts +0 -2
  140. package/dist/src/handlers/taskHandler.js +0 -110
  141. package/dist/src/handlers/testHandler.d.ts +0 -4
  142. package/dist/src/handlers/testHandler.js +0 -99
  143. package/dist/src/main.d.ts +0 -0
  144. package/dist/src/main.js +0 -12
  145. package/dist/src/relayers/common.d.ts +0 -7
  146. package/dist/src/relayers/common.js +0 -55
  147. package/dist/src/relayers/index.d.ts +0 -2
  148. package/dist/src/relayers/index.js +0 -19
  149. package/dist/src/relayers/proposeRelayer.d.ts +0 -7
  150. package/dist/src/relayers/proposeRelayer.js +0 -587
  151. package/dist/src/relayers/sealRelayer.d.ts +0 -8
  152. package/dist/src/relayers/sealRelayer.js +0 -276
  153. package/dist/src/services/attestService.d.ts +0 -45
  154. package/dist/src/services/attestService.js +0 -269
  155. package/dist/src/services/batcherService.d.ts +0 -9
  156. package/dist/src/services/batcherService.js +0 -197
  157. package/dist/src/services/executeService.d.ts +0 -16
  158. package/dist/src/services/executeService.js +0 -209
  159. package/dist/src/services/gasEstimationService.d.ts +0 -3
  160. package/dist/src/services/gasEstimationService.js +0 -12
  161. package/dist/src/services/index.d.ts +0 -4
  162. package/dist/src/services/index.js +0 -23
  163. package/dist/src/services/indexSealService.d.ts +0 -15
  164. package/dist/src/services/indexSealService.js +0 -120
  165. package/dist/src/services/proposalCheckService.d.ts +0 -9
  166. package/dist/src/services/proposalCheckService.js +0 -119
  167. package/dist/src/services/sealService.d.ts +0 -27
  168. package/dist/src/services/sealService.js +0 -190
  169. package/dist/src/statusTrackers/failedMessage.d.ts +0 -8
  170. package/dist/src/statusTrackers/failedMessage.js +0 -72
  171. package/dist/src/statusTrackers/failedPacket.d.ts +0 -13
  172. package/dist/src/statusTrackers/failedPacket.js +0 -110
  173. package/dist/src/statusTrackers/index.d.ts +0 -3
  174. package/dist/src/statusTrackers/index.js +0 -26
  175. package/dist/src/statusTrackers/message.d.ts +0 -4
  176. package/dist/src/statusTrackers/message.js +0 -257
  177. package/dist/src/statusTrackers/packet.d.ts +0 -33
  178. package/dist/src/statusTrackers/packet.js +0 -477
  179. package/dist/src/utils/chain-utils.d.ts +0 -5
  180. package/dist/src/utils/chain-utils.js +0 -42
  181. package/dist/src/utils/index.d.ts +0 -2
  182. package/dist/src/utils/index.js +0 -18
  183. package/dist/src/utils/logger.d.ts +0 -9
  184. package/dist/src/utils/logger.js +0 -9
  185. package/dist/utils/signer/socketSigner.d.ts +0 -32
  186. package/dist/utils/signer/socketSigner.js +0 -121
@@ -1,477 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSealTimeout = exports.updatePacketTxStatus = exports.getPacketsByTxId = exports.getPendingFullyExecutedPackets = exports.checkAndUpdateFullyExecutedStatus = exports.checkAndUpdatePacketRelayStatus = exports.getUpdateObj = void 0;
4
- const utils_1 = require("../utils");
5
- const utils_2 = require("../../dl-common/utils");
6
- const models_1 = require("../../dl-common/models");
7
- const db_1 = require("../db");
8
- const sequelize_1 = require("sequelize");
9
- const constants_1 = require("../constants");
10
- const constants_2 = require("../../dl-common/constants");
11
- const prometheus_config_1 = require("../constants/prometheus.config");
12
- const confirmations_1 = require("../../dl-common/constants/confirmations");
13
- const services_1 = require("../../dl-common/services");
14
- const relayers_1 = require("../relayers");
15
- const dl_core_1 = require("@socket.tech/dl-core");
16
- const getTxId = (packet) => {
17
- if (packet.sealRelayStatus === models_1.SealRelayStatus.SEALING)
18
- return packet.sealTxId;
19
- if (packet.proposeRelayStatus === models_1.ProposeRelayStatus.PROPOSING)
20
- return packet.proposeTxId;
21
- if (packet.attestRelayStatus === models_1.AttestRelayStatus.ATTESTING)
22
- return packet.attestTxId;
23
- console.log("No pending txId found for packet ", packet.packetId);
24
- return null;
25
- };
26
- const getUpdateObj = (packet, status, txHash, chainId, confirmations) => {
27
- let updateObj;
28
- if (status === constants_2.RelayerAPIStatus.FAILED) {
29
- updateObj = getFailedTxStatusUpdateObj(packet, txHash);
30
- }
31
- else if (status === constants_2.RelayerAPIStatus.SIMULATION_FAILED ||
32
- status === constants_2.RelayerAPIStatus.DUPLICATE_NONCE_TX) {
33
- updateObj = getRetryTxStatusUpdateObj(packet, txHash);
34
- }
35
- else if (status === constants_2.RelayerAPIStatus.COMPLETED) {
36
- updateObj = getCompletedTxStatusUpdateObj(packet, txHash, chainId, confirmations);
37
- }
38
- return updateObj;
39
- };
40
- exports.getUpdateObj = getUpdateObj;
41
- const getCompletedTxStatusUpdateObj = (packet, txHash, chainId, confirmations) => {
42
- let updateObj = { packetId: packet.packetId };
43
- if (packet.sealRelayStatus === models_1.SealRelayStatus.SEALING) {
44
- let isEnoughTimePassed = (0, utils_2.currentTimestampInSeconds)() - packet.outboundTime >
45
- (0, exports.getSealTimeout)(packet.srcChainSlug);
46
- let isEnoughConfirmations = chainId &&
47
- confirmations &&
48
- (0, confirmations_1.getConfirmations)(chainId) &&
49
- confirmations > (0, confirmations_1.getConfirmations)(chainId);
50
- if (isEnoughTimePassed || isEnoughConfirmations) {
51
- /// add discord alert
52
- console.log({ isEnoughTimePassed, isEnoughConfirmations });
53
- updateObj = {
54
- ...updateObj,
55
- isSealed: true,
56
- sealRelayStatus: models_1.SealRelayStatus.SEALED,
57
- sealTxHash: txHash,
58
- };
59
- }
60
- }
61
- if (packet.proposeRelayStatus === models_1.ProposeRelayStatus.PROPOSING)
62
- updateObj = {
63
- ...updateObj,
64
- proposeRelayStatus: models_1.ProposeRelayStatus.PROPOSED,
65
- proposeTxHash: txHash,
66
- isProposed: true,
67
- };
68
- if (packet.attestRelayStatus === models_1.AttestRelayStatus.ATTESTING)
69
- updateObj = {
70
- ...updateObj,
71
- attestRelayStatus: models_1.AttestRelayStatus.ATTESTED,
72
- attestTxHash: txHash,
73
- isAttested: true,
74
- };
75
- return updateObj;
76
- };
77
- const getRetryTxStatusUpdateObj = (packet, txHash) => {
78
- let updateObj = { packetId: packet.packetId };
79
- if (packet.sealRelayStatus === models_1.SealRelayStatus.SEALING)
80
- updateObj = {
81
- ...updateObj,
82
- sealRelayStatus: models_1.SealRelayStatus.NO,
83
- sealTxHash: txHash,
84
- };
85
- if (packet.proposeRelayStatus === models_1.ProposeRelayStatus.PROPOSING)
86
- updateObj = {
87
- ...updateObj,
88
- proposeRelayStatus: models_1.ProposeRelayStatus.NO,
89
- proposeTxHash: txHash,
90
- };
91
- if (packet.attestRelayStatus === models_1.AttestRelayStatus.ATTESTING)
92
- updateObj = {
93
- ...updateObj,
94
- attestRelayStatus: models_1.AttestRelayStatus.NO,
95
- attestTxHash: txHash,
96
- };
97
- return updateObj;
98
- };
99
- const getFailedTxStatusUpdateObj = (packet, txHash) => {
100
- let updateObj = { packetId: packet.packetId };
101
- if (packet.sealRelayStatus === models_1.SealRelayStatus.SEALING)
102
- updateObj = {
103
- ...updateObj,
104
- sealRelayStatus: models_1.SealRelayStatus.SEAL_FAILED,
105
- sealTxHash: txHash,
106
- };
107
- if (packet.proposeRelayStatus === models_1.ProposeRelayStatus.PROPOSING)
108
- updateObj = {
109
- ...updateObj,
110
- proposeRelayStatus: models_1.ProposeRelayStatus.PROPOSE_FAILED,
111
- proposeTxHash: txHash,
112
- };
113
- if (packet.attestRelayStatus === models_1.AttestRelayStatus.ATTESTING)
114
- updateObj = {
115
- ...updateObj,
116
- attestRelayStatus: models_1.AttestRelayStatus.ATTEST_FAILED,
117
- attestTxHash: txHash,
118
- };
119
- return updateObj;
120
- };
121
- const checkAndUpdatePacketRelayStatus = async () => {
122
- try {
123
- const packets = await getPendingRelayPackets();
124
- if (packets.length === 0) {
125
- utils_1.logger.info(`No pending relay packets found, returning`);
126
- return;
127
- }
128
- (0, utils_1.logInfo)({
129
- info: "PACKET_RELAY_STATUS_CHECKING",
130
- packetIds: packets.map((p) => p.packetId),
131
- total: packets.length,
132
- messageIds: [],
133
- });
134
- const txIds = new Set();
135
- const packetDbUpdates = [];
136
- const statusCount = {};
137
- const txIdStatusMap = {};
138
- const packetMap = {};
139
- packets.forEach((packet) => {
140
- const txId = getTxId(packet);
141
- if (!txId)
142
- return;
143
- txIds.add(txId);
144
- packetMap[packet.packetId] = packet;
145
- });
146
- const url = (0, constants_1.multipleTxStatusUrl)();
147
- (0, utils_1.logInfo)({
148
- info: "CALLING_RELAYER",
149
- packetIds: packets.map((p) => p.packetId),
150
- txIds,
151
- messageIds: [],
152
- });
153
- const tx = await (0, utils_2.axiosPost)(url, { txIds: [...txIds] });
154
- const responses = tx === null || tx === void 0 ? void 0 : tx.data;
155
- (0, utils_1.logInfo)({
156
- info: "RELAYER_RESPONSE",
157
- packetIds: packets.map((p) => p.packetId),
158
- txIds,
159
- responses,
160
- messageIds: [],
161
- });
162
- responses.forEach((response) => {
163
- const { txId, txHash, status } = response;
164
- txIdStatusMap[txId] = { txHash, status };
165
- });
166
- packets.forEach((packet) => {
167
- const txId = getTxId(packet);
168
- if (!txId)
169
- return;
170
- const { status, txHash } = txIdStatusMap[txId];
171
- if (statusCount[status])
172
- statusCount[status] += 1;
173
- else
174
- statusCount[status] = 1;
175
- const updateObj = (0, exports.getUpdateObj)(packet, status, txHash);
176
- if (updateObj) {
177
- // using packet fields in update is important to avoid getting default value set for other fields
178
- // which are not part of updateObj. for example if only proposing, updateObj will have proposeTxHash, isProposed
179
- // etc, but if we not destructure packet here, sequelize will update isSealed with default values.
180
- packetDbUpdates.push({ ...packet, ...updateObj });
181
- // if (updateObj.sealRelayStatus == SealRelayStatus.SEALED) {
182
- // observeHistogram(relayMetrics.sealRelay.statusUpdateHistogram, {
183
- // labels: {
184
- // [Labels.SRC_CHAIN_SLUG]: packet.srcChainSlug,
185
- // },
186
- // timeDiff: currentTimestampInSeconds() - packet.outboundTime,
187
- // });
188
- // }
189
- if (updateObj.proposeRelayStatus == models_1.ProposeRelayStatus.PROPOSED) {
190
- (0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.proposeRelay.statusUpdateHistogram, {
191
- labels: {
192
- [prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packet.srcChainSlug,
193
- [prometheus_config_1.Labels.DST_CHAIN_SLUG]: packet.dstChainSlug,
194
- [prometheus_config_1.Labels.INTEGRATION_TYPE]: packet.integrationType,
195
- },
196
- timeDiff: (0, utils_2.currentTimestampInSeconds)() - packet.outboundTime,
197
- });
198
- }
199
- if (updateObj.attestRelayStatus == models_1.AttestRelayStatus.ATTESTED) {
200
- (0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.attestRelay.statusUpdateHistogram, {
201
- labels: {
202
- [prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packet.srcChainSlug,
203
- [prometheus_config_1.Labels.DST_CHAIN_SLUG]: packet.dstChainSlug,
204
- [prometheus_config_1.Labels.INTEGRATION_TYPE]: packet.integrationType,
205
- },
206
- timeDiff: (0, utils_2.currentTimestampInSeconds)() - packet.outboundTime,
207
- });
208
- }
209
- }
210
- });
211
- (0, utils_1.logInfo)({
212
- info: "PACKET_STATUS_CHECK_DB_UPDATE",
213
- packetIds: packets.map((p) => p.packetId),
214
- statusCount,
215
- messageIds: [],
216
- });
217
- if (packetDbUpdates.length > 0) {
218
- await savePacketUpdates(packetDbUpdates);
219
- }
220
- (0, utils_1.logInfo)({
221
- info: "PACKET_STATUS_CHECK_DB_UPDATE_DONE",
222
- packetIds: packets.map((p) => p.packetId),
223
- messageIds: [],
224
- });
225
- }
226
- catch (error) {
227
- console.log("checkAndUpdatePacketRelayStatus", error);
228
- }
229
- };
230
- exports.checkAndUpdatePacketRelayStatus = checkAndUpdatePacketRelayStatus;
231
- const savePacketUpdates = async (dbUpdates) => {
232
- try {
233
- //@ts-ignore
234
- await models_1.Packet.bulkCreate(dbUpdates, {
235
- updateOnDuplicate: [
236
- // "isSealed",
237
- "isProposed",
238
- "isAttested",
239
- "sealTxHash",
240
- "attestTxHash",
241
- "proposeTxHash",
242
- "proposeRelayStatus",
243
- "sealRelayStatus",
244
- "attestRelayStatus",
245
- ],
246
- });
247
- }
248
- catch (error) {
249
- utils_1.logger.error("Error while saving status updates", error);
250
- throw new Error(`Error while saving status updates ${error === null || error === void 0 ? void 0 : error.message}`);
251
- }
252
- };
253
- const checkAndUpdateFullyExecutedStatus = async () => {
254
- var _a;
255
- try {
256
- const packets = await (0, exports.getPendingFullyExecutedPackets)();
257
- const fullyExecutedPacketIds = [];
258
- for (const packet of packets) {
259
- let fullyExecuted = true;
260
- if (!((_a = packet.Messages) === null || _a === void 0 ? void 0 : _a.length))
261
- continue;
262
- const messagesInPacket = 1; // update this later when using multi-message packets
263
- let messageCount = 0;
264
- for (const message of packet.Messages) {
265
- if (!message.isExecuted) {
266
- fullyExecuted = false;
267
- break;
268
- }
269
- messageCount++;
270
- }
271
- if (fullyExecuted && messageCount === messagesInPacket) {
272
- fullyExecutedPacketIds.push(packet.packetId);
273
- }
274
- }
275
- (0, utils_1.logInfo)({
276
- info: "UPDATING_PACKET_EXECUTION_STATUS_DB",
277
- packetIds: packets.map((p) => p.packetId),
278
- messageIds: [],
279
- });
280
- if (fullyExecutedPacketIds.length > 0) {
281
- await saveFullyExecutedPacketUpdates(fullyExecutedPacketIds);
282
- }
283
- (0, utils_1.logInfo)({
284
- info: "UPDATED_PACKET_EXECUTION_STATUS_DB",
285
- packetIds: packets.map((p) => p.packetId),
286
- messageIds: [],
287
- });
288
- }
289
- catch (error) {
290
- console.log("error in checkAndUpdateFullyExecutedStatus: ", error);
291
- }
292
- };
293
- exports.checkAndUpdateFullyExecutedStatus = checkAndUpdateFullyExecutedStatus;
294
- const saveFullyExecutedPacketUpdates = async (packetIds) => {
295
- try {
296
- await models_1.Packet.update({
297
- isFullyExecuted: true,
298
- }, {
299
- where: {
300
- packetId: {
301
- [sequelize_1.Op.in]: packetIds,
302
- },
303
- },
304
- });
305
- }
306
- catch (error) {
307
- utils_1.logger.error("Error while saving status updates", error);
308
- throw new Error(`Error while saving status updates ${error === null || error === void 0 ? void 0 : error.message}`);
309
- }
310
- };
311
- const getPendingRelayPackets = async () => {
312
- const startTime = new Date(new Date().getTime() - 30 * 1000); // 30 seconds ago
313
- const oneDayAgo = new Date(new Date().getTime() - 24 * 60 * 60 * 1000); // 24 hours ago
314
- let results = [];
315
- try {
316
- results = await models_1.Packet.findAll({
317
- limit: constants_1.checkTxStatusLimit,
318
- where: {
319
- [sequelize_1.Op.or]: [
320
- {
321
- sealRelayStatus: models_1.SealRelayStatus.SEALING,
322
- },
323
- { proposeRelayStatus: models_1.ProposeRelayStatus.PROPOSING },
324
- { attestRelayStatus: models_1.AttestRelayStatus.ATTESTING },
325
- ],
326
- updatedAt: {
327
- [sequelize_1.Op.and]: [
328
- { [sequelize_1.Op.lte]: startTime },
329
- { [sequelize_1.Op.gte]: oneDayAgo }, // updatedAt >= oneDayAgo
330
- ],
331
- },
332
- },
333
- order: [
334
- [
335
- db_1.attesterDBInst.cast(db_1.attesterDBInst.col("updatedAt"), "timestamp"),
336
- "ASC",
337
- ],
338
- ],
339
- });
340
- results = results.map((result) => result.get({ plain: true }));
341
- }
342
- catch (err) {
343
- utils_1.logger.error(`packet-txstatus-checker -> error while querying Packets-Awaiting-RelayCompletion`);
344
- utils_1.logger.error("Error", err);
345
- }
346
- return results;
347
- };
348
- const getPendingFullyExecutedPackets = async () => {
349
- const startTime = new Date(new Date().getTime() - 30 * 1000); // 30 seconds ago
350
- const oneDayAgo = new Date(new Date().getTime() - 24 * 60 * 60 * 1000); // 24 hours ago
351
- const packets = await models_1.Packet.findAll({
352
- limit: constants_1.proposeBatchQueryLimit,
353
- where: {
354
- isFullyExecuted: false,
355
- isAttested: true,
356
- tripReason: models_1.TripReason.NO,
357
- updatedAt: {
358
- [sequelize_1.Op.and]: [
359
- { [sequelize_1.Op.lte]: startTime },
360
- { [sequelize_1.Op.gte]: oneDayAgo }, // updatedAt >=24 hours ago
361
- ],
362
- },
363
- },
364
- include: [
365
- {
366
- model: models_1.Message,
367
- // we dont want to fetch messages which dont have inboundSuccess as true.
368
- // if there are no valid messages, no point fetching packet as well. therefore not
369
- // using required: false;
370
- where: {
371
- inboundSuccess: true,
372
- executeRelayStatus: {
373
- [sequelize_1.Op.ne]: models_1.ExecutionRelayStatus.IGNORED,
374
- },
375
- },
376
- attributes: ["messageId", "isExecuted"],
377
- },
378
- ],
379
- order: [["updatedAt", "ASC"]],
380
- });
381
- console.log(" getPendingFullyExecutedPackets count: ", packets.length);
382
- return packets;
383
- };
384
- exports.getPendingFullyExecutedPackets = getPendingFullyExecutedPackets;
385
- const getPacketsByTxId = async (txIds) => {
386
- const packets = (await models_1.Packet.findAll({
387
- where: {
388
- [sequelize_1.Op.or]: [
389
- { sealTxId: { [sequelize_1.Op.in]: txIds } },
390
- { proposeTxId: { [sequelize_1.Op.in]: txIds } },
391
- { attestTxId: { [sequelize_1.Op.in]: txIds } },
392
- ],
393
- },
394
- })).map((el) => el.get({ plain: true }));
395
- return packets;
396
- };
397
- exports.getPacketsByTxId = getPacketsByTxId;
398
- const updatePacketTxStatus = async (updates) => {
399
- const statusCount = {};
400
- const txIdStatusMap = {};
401
- updates.forEach((update) => {
402
- txIdStatusMap[update.txId] = update;
403
- });
404
- const txIds = updates.map((u) => u.txId);
405
- const packets = await (0, exports.getPacketsByTxId)(txIds);
406
- const packetDbUpdates = [];
407
- let isRelayProposeRequired = false;
408
- for (const packet of packets) {
409
- const txId = getTxId(packet);
410
- if (!txId || !txIdStatusMap[txId])
411
- return;
412
- const { status, txHash, chainId, confirmations } = txIdStatusMap[txId];
413
- if (statusCount[status])
414
- statusCount[status] += 1;
415
- else
416
- statusCount[status] = 1;
417
- const updateObj = (0, exports.getUpdateObj)(packet, status, txHash, chainId, confirmations);
418
- if (updateObj) {
419
- packetDbUpdates.push({ ...packet, ...updateObj });
420
- if (updateObj === null || updateObj === void 0 ? void 0 : updateObj.isSealed)
421
- isRelayProposeRequired = true;
422
- if (updateObj.sealRelayStatus === models_1.SealRelayStatus.SEAL_FAILED)
423
- await (0, relayers_1.markSealRecentError)();
424
- observeStatusUpdateMetrics(packet, updateObj);
425
- }
426
- }
427
- const updatedPacketIds = packetDbUpdates.map((p) => p.packetId);
428
- console.log({ updatedPacketIds });
429
- if (packetDbUpdates.length > 0) {
430
- // console.log({packetDbUpdates});
431
- await savePacketUpdates(packetDbUpdates);
432
- }
433
- if (isRelayProposeRequired) {
434
- await (0, services_1.sendStandardSqsMessage)(constants_1.SQS_BASE_URL + constants_1.QueueName.BATCHER_TASK_QUEUE, {
435
- type: constants_1.TaskNames.RELAY_PROPOSE,
436
- data: { counter: Math.floor(Math.random() * 100) },
437
- });
438
- }
439
- };
440
- exports.updatePacketTxStatus = updatePacketTxStatus;
441
- const observeStatusUpdateMetrics = (packet, updateObj) => {
442
- if (updateObj.sealRelayStatus == models_1.SealRelayStatus.SEALED &&
443
- (updateObj === null || updateObj === void 0 ? void 0 : updateObj.isSealed)) {
444
- (0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.sealRelay.statusUpdateHistogram, {
445
- labels: {
446
- [prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packet.srcChainSlug,
447
- },
448
- timeDiff: (0, utils_2.currentTimestampInSeconds)() - packet.outboundTime,
449
- });
450
- }
451
- if (updateObj.proposeRelayStatus == models_1.ProposeRelayStatus.PROPOSED) {
452
- (0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.proposeRelay.statusUpdateHistogram, {
453
- labels: {
454
- [prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packet.srcChainSlug,
455
- [prometheus_config_1.Labels.DST_CHAIN_SLUG]: packet.dstChainSlug,
456
- [prometheus_config_1.Labels.INTEGRATION_TYPE]: packet.integrationType,
457
- },
458
- timeDiff: (0, utils_2.currentTimestampInSeconds)() - packet.outboundTime,
459
- });
460
- }
461
- if (updateObj.attestRelayStatus == models_1.AttestRelayStatus.ATTESTED) {
462
- (0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.attestRelay.statusUpdateHistogram, {
463
- labels: {
464
- [prometheus_config_1.Labels.SRC_CHAIN_SLUG]: packet.srcChainSlug,
465
- [prometheus_config_1.Labels.DST_CHAIN_SLUG]: packet.dstChainSlug,
466
- [prometheus_config_1.Labels.INTEGRATION_TYPE]: packet.integrationType,
467
- },
468
- timeDiff: (0, utils_2.currentTimestampInSeconds)() - packet.outboundTime,
469
- });
470
- }
471
- };
472
- const getSealTimeout = (chainSlug) => {
473
- if (chainSlug === dl_core_1.ChainSlug.POLYGON_MAINNET)
474
- return 15 * 60;
475
- return 5 * 60;
476
- };
477
- exports.getSealTimeout = getSealTimeout;
@@ -1,5 +0,0 @@
1
- import { type TransactionReceipt } from "@ethersproject/providers";
2
- import { type BigNumber } from "ethers";
3
- import { type ChainSlug } from "@socket.tech/dl-core";
4
- export declare const getReceipt: (txHash: string, chainSlug: ChainSlug) => Promise<TransactionReceipt>;
5
- export declare const getRPCGasPrice: (chainSlug: ChainSlug) => Promise<BigNumber>;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRPCGasPrice = exports.getReceipt = void 0;
4
- const constants_1 = require("../constants");
5
- const index_1 = require("../../dl-common/index");
6
- const logger_1 = require("./logger");
7
- const getReceipt = async (txHash, chainSlug) => {
8
- let receipt;
9
- try {
10
- const provider = (0, constants_1.getProvider)(chainSlug);
11
- receipt = await provider.getTransactionReceipt(txHash);
12
- }
13
- catch (e) {
14
- const err = e;
15
- if ((err === null || err === void 0 ? void 0 : err.code) === "INVALID_ARGUMENT") {
16
- throw new index_1.ServerError(index_1.StatusCodes.BAD_REQUEST, `invalid hash ${txHash}`);
17
- }
18
- else {
19
- logger_1.logger.error("Error while getting receipt", err.toString());
20
- throw new index_1.ServerError(index_1.StatusCodes.INTERNAL_SERVER_ERROR);
21
- }
22
- }
23
- if (!receipt) {
24
- throw new index_1.ServerError(index_1.StatusCodes.NOT_FOUND, `tx ${txHash} not found on ${chainSlug} `);
25
- }
26
- return receipt;
27
- };
28
- exports.getReceipt = getReceipt;
29
- const getRPCGasPrice = async (chainSlug) => {
30
- let gasPrice;
31
- try {
32
- const provider = (0, constants_1.getProvider)(chainSlug);
33
- gasPrice = await provider.getGasPrice();
34
- }
35
- catch (e) {
36
- const err = e;
37
- logger_1.logger.error("Error while getting gas price from rpc", err.toString());
38
- throw (0, index_1.InternalServerError)("Error while getting gas price from rpc");
39
- }
40
- return gasPrice;
41
- };
42
- exports.getRPCGasPrice = getRPCGasPrice;
@@ -1,2 +0,0 @@
1
- export * from "./logger";
2
- export * from "./chain-utils";
@@ -1,18 +0,0 @@
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("./logger"), exports);
18
- __exportStar(require("./chain-utils"), exports);
@@ -1,9 +0,0 @@
1
- export declare const logger: import("@aws-lambda-powertools/logger/lib/Logger").Logger;
2
- export interface LogType {
3
- info: string;
4
- packetIds: string[];
5
- messageIds: string[];
6
- [key: string]: any;
7
- }
8
- export declare const logInfo: (logInfo: LogType) => void;
9
- export declare const logError: (logInfo: LogType) => void;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logError = exports.logInfo = exports.logger = void 0;
4
- const ll_common_1 = require("@socket.tech/ll-common");
5
- exports.logger = (0, ll_common_1.createLogger)(process.env.REGION || "N/A", "socket-dl-batcher");
6
- const logInfo = (logInfo) => exports.logger.info(`${JSON.stringify(logInfo)}`);
7
- exports.logInfo = logInfo;
8
- const logError = (logInfo) => exports.logger.error(`${JSON.stringify(logInfo)}`);
9
- exports.logError = logError;
@@ -1,32 +0,0 @@
1
- import { type Provider, type TransactionRequest, type TransactionResponse } from "@ethersproject/abstract-provider";
2
- import { type Deferrable } from "@ethersproject/properties";
3
- import { SocketRelaySigner } from "../relaySigner";
4
- import { Contract, type Wallet } from "ethers";
5
- export declare const EIP712_SAFE_TX_TYPE: {
6
- SafeTx: {
7
- type: string;
8
- name: string;
9
- }[];
10
- };
11
- export declare class SocketSigner extends SocketRelaySigner {
12
- readonly provider: Provider;
13
- readonly chainId: number;
14
- readonly safeAddress: string;
15
- readonly safeWrapperAddress: string;
16
- readonly relayUrl: string;
17
- readonly relayerAPIKey: string;
18
- readonly signingWallet?: Wallet | undefined;
19
- readonly useSafe: boolean;
20
- readonly useEOA: boolean;
21
- readonly sequential: boolean;
22
- readonly isCritical: boolean;
23
- readonly metadata: object;
24
- readonly safeWrapperContract: Contract;
25
- readonly address: string;
26
- constructor(provider: Provider, chainId: number, safeAddress: string, safeWrapperAddress: string, relayUrl: string, relayerAPIKey: string, signingWallet?: Wallet | undefined, useSafe?: boolean, useEOA?: boolean, sequential?: boolean, isCritical?: boolean, metadata?: object);
27
- setSigningWallet(signingWallet: Wallet): SocketRelaySigner;
28
- setSafeWrapperAddress(safeWrapperAddress: string): SocketRelaySigner;
29
- setSafeAddress(safeAddress: string): SocketRelaySigner;
30
- getAddress(): Promise<string>;
31
- sendTransaction(transaction: Deferrable<TransactionRequest>): Promise<TransactionResponse>;
32
- }