@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.
Files changed (312) hide show
  1. package/dist/constants/enums.d.ts +2 -8
  2. package/dist/constants/enums.js +1 -8
  3. package/dist/constants/types.d.ts +1 -11
  4. package/dist/constants/types.js +1 -9
  5. package/dist/constants/waitTime.js +4 -0
  6. package/dist/dl-common/constants/confirmations.js +1 -0
  7. package/dist/dl-common/constants/confirmations.js.map +1 -0
  8. package/dist/dl-common/constants/enums.js +1 -0
  9. package/dist/dl-common/constants/enums.js.map +1 -0
  10. package/dist/dl-common/constants/index.js +5 -17
  11. package/dist/dl-common/constants/index.js.map +1 -0
  12. package/dist/dl-common/constants/types.d.ts +18 -8
  13. package/dist/dl-common/constants/types.js +10 -1
  14. package/dist/dl-common/constants/types.js.map +1 -0
  15. package/dist/dl-common/constants/waitTime.js +1 -4
  16. package/dist/dl-common/constants/waitTime.js.map +1 -0
  17. package/dist/dl-common/index.js +6 -18
  18. package/dist/dl-common/index.js.map +1 -0
  19. package/dist/dl-common/models/attestSignature.js +1 -0
  20. package/dist/dl-common/models/attestSignature.js.map +1 -0
  21. package/dist/dl-common/models/attestation.js +1 -0
  22. package/dist/dl-common/models/attestation.js.map +1 -0
  23. package/dist/dl-common/models/index.js +9 -21
  24. package/dist/dl-common/models/index.js.map +1 -0
  25. package/dist/dl-common/models/lastBlock.js +1 -0
  26. package/dist/dl-common/models/lastBlock.js.map +1 -0
  27. package/dist/dl-common/models/message.d.ts +6 -1
  28. package/dist/dl-common/models/message.js +12 -1
  29. package/dist/dl-common/models/message.js.map +1 -0
  30. package/dist/dl-common/models/packet.d.ts +0 -1
  31. package/dist/dl-common/models/packet.js +1 -5
  32. package/dist/dl-common/models/packet.js.map +1 -0
  33. package/dist/dl-common/models/proposal.js +1 -0
  34. package/dist/dl-common/models/proposal.js.map +1 -0
  35. package/dist/dl-common/models/switchboard.js +4 -2
  36. package/dist/dl-common/models/switchboard.js.map +1 -0
  37. package/dist/dl-common/models/transaction.js +1 -279
  38. package/dist/dl-common/models/transaction.js.map +1 -0
  39. package/dist/dl-common/services/cacheService.js +35 -33
  40. package/dist/dl-common/services/cacheService.js.map +1 -0
  41. package/dist/dl-common/services/eventBridgeService.d.ts +1 -1
  42. package/dist/dl-common/services/eventBridgeService.js +5 -7
  43. package/dist/dl-common/services/eventBridgeService.js.map +1 -0
  44. package/dist/dl-common/services/index.js +5 -18
  45. package/dist/dl-common/services/index.js.map +1 -0
  46. package/dist/dl-common/services/queueService.js +11 -12
  47. package/dist/dl-common/services/queueService.js.map +1 -0
  48. package/dist/dl-common/utils/address.js +1 -0
  49. package/dist/dl-common/utils/address.js.map +1 -0
  50. package/dist/dl-common/utils/axios.js +13 -24
  51. package/dist/dl-common/utils/axios.js.map +1 -0
  52. package/dist/dl-common/utils/dataStructHelper.js +4 -3
  53. package/dist/dl-common/utils/dataStructHelper.js.map +1 -0
  54. package/dist/dl-common/utils/discord.d.ts +2 -2
  55. package/dist/dl-common/utils/discord.js +14 -5
  56. package/dist/dl-common/utils/discord.js.map +1 -0
  57. package/dist/dl-common/utils/ethersAwsKmsSigner.js +5 -4
  58. package/dist/dl-common/utils/ethersAwsKmsSigner.js.map +1 -0
  59. package/dist/dl-common/utils/eventGetter.js +8 -6
  60. package/dist/dl-common/utils/eventGetter.js.map +1 -0
  61. package/dist/dl-common/utils/extraUtils.d.ts +0 -7
  62. package/dist/dl-common/utils/extraUtils.js +3 -10
  63. package/dist/dl-common/utils/extraUtils.js.map +1 -0
  64. package/dist/dl-common/utils/idUtils.js +3 -5
  65. package/dist/dl-common/utils/idUtils.js.map +1 -0
  66. package/dist/dl-common/utils/index.js +15 -27
  67. package/dist/dl-common/utils/index.js.map +1 -0
  68. package/dist/dl-common/utils/relaySigner.js +38 -38
  69. package/dist/dl-common/utils/relaySigner.js.map +1 -0
  70. package/dist/dl-common/utils/s3Service.d.ts +6 -0
  71. package/dist/dl-common/utils/s3Service.js +42 -16
  72. package/dist/dl-common/utils/s3Service.js.map +1 -0
  73. package/dist/dl-common/utils/secretManagerService.js +9 -7
  74. package/dist/dl-common/utils/secretManagerService.js.map +1 -0
  75. package/dist/dl-common/utils/signer/adapter.js +50 -42
  76. package/dist/dl-common/utils/signer/adapter.js.map +1 -0
  77. package/dist/dl-common/utils/signer/address.d.ts +0 -1
  78. package/dist/dl-common/utils/signer/address.js +3 -5
  79. package/dist/dl-common/utils/signer/address.js.map +1 -0
  80. package/dist/dl-common/utils/signer/asn1-parser.d.ts +0 -6
  81. package/dist/dl-common/utils/signer/asn1-parser.js +5 -32
  82. package/dist/dl-common/utils/signer/asn1-parser.js.map +1 -0
  83. package/dist/dl-common/utils/signer/crypto.d.ts +0 -1
  84. package/dist/dl-common/utils/signer/crypto.js +6 -8
  85. package/dist/dl-common/utils/signer/crypto.js.map +1 -0
  86. package/dist/dl-common/utils/signer/index.d.ts +1 -0
  87. package/dist/dl-common/utils/signer/index.js +7 -18
  88. package/dist/dl-common/utils/signer/index.js.map +1 -0
  89. package/dist/dl-common/utils/signer/kms-ethers-signer.js +14 -7
  90. package/dist/dl-common/utils/signer/kms-ethers-signer.js.map +1 -0
  91. package/dist/dl-common/utils/signer/kms-signer.d.ts +0 -1
  92. package/dist/dl-common/utils/signer/kms-signer.js +37 -27
  93. package/dist/dl-common/utils/signer/kms-signer.js.map +1 -0
  94. package/dist/dl-common/utils/signer/signature.d.ts +0 -1
  95. package/dist/dl-common/utils/signer/signature.js +3 -4
  96. package/dist/dl-common/utils/signer/signature.js.map +1 -0
  97. package/dist/dl-common/utils/signer/signer.d.ts +0 -1
  98. package/dist/dl-common/utils/signer/signer.js +1 -0
  99. package/dist/dl-common/utils/signer/signer.js.map +1 -0
  100. package/dist/dl-common/utils/signer/socketSigner.js +155 -0
  101. package/dist/dl-common/utils/signer/socketSigner.js.map +1 -0
  102. package/dist/dl-common/utils/time.js +1 -0
  103. package/dist/dl-common/utils/time.js.map +1 -0
  104. package/dist/index.js +30 -14
  105. package/dist/models/index.d.ts +0 -1
  106. package/dist/models/index.js +0 -1
  107. package/dist/models/message.d.ts +1 -6
  108. package/dist/models/message.js +1 -11
  109. package/dist/models/packet.d.ts +1 -0
  110. package/dist/models/packet.js +1 -0
  111. package/dist/services/eventBridgeService.js +0 -1
  112. package/dist/services/queueService.d.ts +2 -2
  113. package/dist/services/queueService.js +14 -22
  114. package/dist/src/constants/batcherModes.js +1 -46
  115. package/dist/src/constants/batcherModes.js.map +1 -0
  116. package/dist/src/constants/config.d.ts +5 -0
  117. package/dist/src/constants/config.js +14 -13
  118. package/dist/src/constants/config.js.map +1 -0
  119. package/dist/src/constants/enums.d.ts +4 -0
  120. package/dist/src/constants/enums.js +7 -1
  121. package/dist/src/constants/enums.js.map +1 -0
  122. package/dist/src/constants/index.d.ts +0 -1
  123. package/dist/src/constants/index.js +12 -26
  124. package/dist/src/constants/index.js.map +1 -0
  125. package/dist/src/constants/limits.d.ts +5 -10
  126. package/dist/src/constants/limits.js +19 -56
  127. package/dist/src/constants/limits.js.map +1 -0
  128. package/dist/src/constants/prometheus.config.js +22 -215
  129. package/dist/src/constants/prometheus.config.js.map +1 -0
  130. package/dist/src/constants/relayer.d.ts +1 -0
  131. package/dist/src/constants/relayer.js +7 -4
  132. package/dist/src/constants/relayer.js.map +1 -0
  133. package/dist/src/constants/s3Config.js +18 -14
  134. package/dist/src/constants/s3Config.js.map +1 -0
  135. package/dist/src/constants/stageConfig.js +3 -2
  136. package/dist/src/constants/stageConfig.js.map +1 -0
  137. package/dist/src/constants/types.d.ts +13 -0
  138. package/dist/src/constants/types.js +1 -0
  139. package/dist/src/constants/types.js.map +1 -0
  140. package/dist/src/constants/watchers.d.ts +1 -0
  141. package/dist/src/constants/watchers.js +15 -13
  142. package/dist/src/constants/watchers.js.map +1 -0
  143. package/dist/src/controllers/index.js +1 -2
  144. package/dist/src/controllers/index.js.map +1 -0
  145. package/dist/src/db/associations.js +1 -24
  146. package/dist/src/db/associations.js.map +1 -0
  147. package/dist/src/db/connection.js +66 -61
  148. package/dist/src/db/connection.js.map +1 -0
  149. package/dist/src/db/index.js +4 -16
  150. package/dist/src/db/index.js.map +1 -0
  151. package/dist/src/db/init.js +8 -6
  152. package/dist/src/db/init.js.map +1 -0
  153. package/dist/src/handlers/common.js +7 -8
  154. package/dist/src/handlers/common.js.map +1 -0
  155. package/dist/src/handlers/cronHandler.d.ts +1 -7
  156. package/dist/src/handlers/cronHandler.js +26 -237
  157. package/dist/src/handlers/cronHandler.js.map +1 -0
  158. package/dist/src/handlers/executeHandler.js +12 -16
  159. package/dist/src/handlers/executeHandler.js.map +1 -0
  160. package/dist/src/handlers/handler.js +6 -10
  161. package/dist/src/handlers/handler.js.map +1 -0
  162. package/dist/src/handlers/proposeHandler.js +26 -11
  163. package/dist/src/handlers/proposeHandler.js.map +1 -0
  164. package/dist/src/handlers/routes.js +2 -0
  165. package/dist/src/handlers/routes.js.map +1 -0
  166. package/dist/src/handlers/sealHandler.js +14 -121
  167. package/dist/src/handlers/sealHandler.js.map +1 -0
  168. package/dist/src/handlers/statusHandler.js +30 -22
  169. package/dist/src/handlers/statusHandler.js.map +1 -0
  170. package/dist/src/handlers/taskHandler.js +24 -45
  171. package/dist/src/handlers/taskHandler.js.map +1 -0
  172. package/dist/src/handlers/testHandler.js +17 -49
  173. package/dist/src/handlers/testHandler.js.map +1 -0
  174. package/dist/src/main.js +1 -11
  175. package/dist/src/main.js.map +1 -0
  176. package/dist/src/relayers/common.d.ts +1 -1
  177. package/dist/src/relayers/common.js +10 -11
  178. package/dist/src/relayers/common.js.map +1 -0
  179. package/dist/src/relayers/index.d.ts +1 -1
  180. package/dist/src/relayers/index.js +4 -17
  181. package/dist/src/relayers/index.js.map +1 -0
  182. package/dist/src/relayers/propose/constants.d.ts +15 -0
  183. package/dist/src/relayers/propose/constants.js +3 -0
  184. package/dist/src/relayers/propose/constants.js.map +1 -0
  185. package/dist/src/relayers/propose/dbQuery.d.ts +2 -0
  186. package/dist/src/relayers/propose/dbQuery.js +141 -0
  187. package/dist/src/relayers/propose/dbQuery.js.map +1 -0
  188. package/dist/src/relayers/propose/main.d.ts +3 -0
  189. package/dist/src/relayers/propose/main.js +292 -0
  190. package/dist/src/relayers/propose/main.js.map +1 -0
  191. package/dist/src/relayers/propose/metrics.d.ts +2 -0
  192. package/dist/src/relayers/propose/metrics.js +51 -0
  193. package/dist/src/relayers/propose/metrics.js.map +1 -0
  194. package/dist/src/relayers/propose/proposalCount.d.ts +6 -0
  195. package/dist/src/relayers/propose/proposalCount.js +74 -0
  196. package/dist/src/relayers/propose/proposalCount.js.map +1 -0
  197. package/dist/src/relayers/propose/utils.d.ts +9 -0
  198. package/dist/src/relayers/propose/utils.js +42 -0
  199. package/dist/src/relayers/propose/utils.js.map +1 -0
  200. package/dist/src/relayers/sealRelayer.js +87 -60
  201. package/dist/src/relayers/sealRelayer.js.map +1 -0
  202. package/dist/src/services/attestService.d.ts +1 -1
  203. package/dist/src/services/attestService.js +53 -42
  204. package/dist/src/services/attestService.js.map +1 -0
  205. package/dist/src/services/batch/attest.d.ts +5 -0
  206. package/dist/src/services/batch/attest.js +29 -0
  207. package/dist/src/services/batch/attest.js.map +1 -0
  208. package/dist/src/services/batch/execute.d.ts +5 -0
  209. package/dist/src/services/batch/execute.js +34 -0
  210. package/dist/src/services/batch/execute.js.map +1 -0
  211. package/dist/src/services/batch/gasLimit.d.ts +6 -0
  212. package/dist/src/services/batch/gasLimit.js +59 -0
  213. package/dist/src/services/batch/gasLimit.js.map +1 -0
  214. package/dist/src/services/batch/main.d.ts +2 -0
  215. package/dist/src/services/batch/main.js +49 -0
  216. package/dist/src/services/batch/main.js.map +1 -0
  217. package/dist/src/services/batch/propose.d.ts +5 -0
  218. package/dist/src/services/batch/propose.js +22 -0
  219. package/dist/src/services/batch/propose.js.map +1 -0
  220. package/dist/src/services/batch/utils.d.ts +2 -0
  221. package/dist/src/services/batch/utils.js +67 -0
  222. package/dist/src/services/batch/utils.js.map +1 -0
  223. package/dist/src/services/cron/constants.d.ts +30 -0
  224. package/dist/src/services/cron/constants.js +71 -0
  225. package/dist/src/services/cron/constants.js.map +1 -0
  226. package/dist/src/services/cron/main.d.ts +1 -0
  227. package/dist/src/services/cron/main.js +32 -0
  228. package/dist/src/services/cron/main.js.map +1 -0
  229. package/dist/src/services/cron/utils.d.ts +7 -0
  230. package/dist/src/services/cron/utils.js +74 -0
  231. package/dist/src/services/cron/utils.js.map +1 -0
  232. package/dist/src/services/execute/executeData.d.ts +3 -0
  233. package/dist/src/services/execute/executeData.js +94 -0
  234. package/dist/src/services/execute/executeData.js.map +1 -0
  235. package/dist/src/services/execute/index.d.ts +2 -0
  236. package/dist/src/services/execute/index.js +6 -0
  237. package/dist/src/services/execute/index.js.map +1 -0
  238. package/dist/src/services/{executeService.d.ts → execute/simulate.d.ts} +2 -2
  239. package/dist/src/services/execute/simulate.js +136 -0
  240. package/dist/src/services/execute/simulate.js.map +1 -0
  241. package/dist/src/services/execute/utils.d.ts +15 -0
  242. package/dist/src/services/execute/utils.js +73 -0
  243. package/dist/src/services/execute/utils.js.map +1 -0
  244. package/dist/src/services/gasEstimationService.js +6 -5
  245. package/dist/src/services/gasEstimationService.js.map +1 -0
  246. package/dist/src/services/index.d.ts +1 -1
  247. package/dist/src/services/index.js +6 -21
  248. package/dist/src/services/index.js.map +1 -0
  249. package/dist/src/services/indexSealService.js +28 -22
  250. package/dist/src/services/indexSealService.js.map +1 -0
  251. package/dist/src/services/proposalCheckService.js +27 -21
  252. package/dist/src/services/proposalCheckService.js.map +1 -0
  253. package/dist/src/services/retry/message.d.ts +1 -0
  254. package/dist/src/services/retry/message.js +52 -0
  255. package/dist/src/services/retry/message.js.map +1 -0
  256. package/dist/src/services/retry/packet.d.ts +2 -0
  257. package/dist/src/services/retry/packet.js +70 -0
  258. package/dist/src/services/retry/packet.js.map +1 -0
  259. package/dist/src/services/sealService.js +77 -47
  260. package/dist/src/services/sealService.js.map +1 -0
  261. package/dist/src/statusTrackers/failedMessage.js +16 -19
  262. package/dist/src/statusTrackers/failedMessage.js.map +1 -0
  263. package/dist/src/statusTrackers/failedPacket.js +26 -45
  264. package/dist/src/statusTrackers/failedPacket.js.map +1 -0
  265. package/dist/src/statusTrackers/index.js +8 -20
  266. package/dist/src/statusTrackers/index.js.map +1 -0
  267. package/dist/src/statusTrackers/message.d.ts +2 -1
  268. package/dist/src/statusTrackers/message.js +60 -52
  269. package/dist/src/statusTrackers/message.js.map +1 -0
  270. package/dist/src/statusTrackers/packet.d.ts +1 -12
  271. package/dist/src/statusTrackers/packet.js +137 -149
  272. package/dist/src/statusTrackers/packet.js.map +1 -0
  273. package/dist/src/utils/chain-utils.js +8 -6
  274. package/dist/src/utils/chain-utils.js.map +1 -0
  275. package/dist/src/utils/gas-limits.d.ts +10 -0
  276. package/dist/src/utils/gas-limits.js +103 -0
  277. package/dist/src/utils/gas-limits.js.map +1 -0
  278. package/dist/src/utils/index.js +4 -16
  279. package/dist/src/utils/index.js.map +1 -0
  280. package/dist/src/utils/logger.d.ts +3 -3
  281. package/dist/src/utils/logger.js +1 -0
  282. package/dist/src/utils/logger.js.map +1 -0
  283. package/dist/utils/dataStructHelper.js +2 -2
  284. package/dist/utils/discord.d.ts +2 -2
  285. package/dist/utils/discord.js +3 -11
  286. package/dist/utils/idUtils.js +2 -2
  287. package/dist/utils/s3Service.d.ts +3 -10
  288. package/dist/utils/s3Service.js +9 -38
  289. package/dist/utils/signer/address.d.ts +1 -0
  290. package/dist/utils/signer/asn1-parser.d.ts +1 -0
  291. package/dist/utils/signer/asn1-parser.js +3 -2
  292. package/dist/utils/signer/crypto.d.ts +1 -0
  293. package/dist/utils/signer/crypto.js +4 -3
  294. package/dist/utils/signer/index.d.ts +0 -1
  295. package/dist/utils/signer/index.js +0 -1
  296. package/dist/utils/signer/kms-signer.d.ts +1 -0
  297. package/dist/utils/signer/signature.d.ts +1 -0
  298. package/dist/utils/signer/signer.d.ts +1 -0
  299. package/package.json +5 -3
  300. package/dist/models/lastBlock.d.ts +0 -28
  301. package/dist/models/lastBlock.js +0 -27
  302. package/dist/models/transaction.d.ts +0 -0
  303. package/dist/models/transaction.js +0 -280
  304. package/dist/src/constants/gasEstimation.d.ts +0 -8
  305. package/dist/src/constants/gasEstimation.js +0 -61
  306. package/dist/src/relayers/proposeRelayer.d.ts +0 -7
  307. package/dist/src/relayers/proposeRelayer.js +0 -587
  308. package/dist/src/services/batcherService.d.ts +0 -9
  309. package/dist/src/services/batcherService.js +0 -197
  310. package/dist/src/services/executeService.js +0 -209
  311. package/dist/utils/signer/socketSigner.js +0 -154
  312. /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[]>;