@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,197 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBatchDataArgs = exports.checkGasLimitAndAddToBatch = exports.calculateBatchGasLimit = void 0;
4
- const dl_core_1 = require("@socket.tech/dl-core");
5
- const constants_1 = require("../constants");
6
- const ethers_1 = require("ethers");
7
- const gasEstimation_1 = require("../constants/gasEstimation");
8
- const gasEstimationService_1 = require("./gasEstimationService");
9
- const common_1 = require("../relayers/common");
10
- const utils_1 = require("../utils");
11
- const calculateBatchGasLimit = async (dstChainSlug, currentBatch) => {
12
- try {
13
- const start = Date.now();
14
- let totalGasLimit = 0;
15
- const socketBatcher = await (0, common_1.getSocketBatcher)(dstChainSlug, {}, false);
16
- const socketAddress = (0, common_1.getSocketAddress)(dstChainSlug);
17
- (0, utils_1.logInfo)({
18
- info: "ESTIMATING_GAS_PROPOSE_RELAY",
19
- packetIds: currentBatch.proposeBatchDataArgs.map((a) => a[0]),
20
- messageIds: [],
21
- });
22
- const proposeAttestGasEstimate = await socketBatcher.estimateGas.sendBatch(socketAddress,
23
- // switchboardAddress, // this may change if we have multiple switchboards. this works only for
24
- // fast switchboard case
25
- [], // for sealBatch
26
- currentBatch.proposeBatchDataArgs, currentBatch.attestBatchDataArgs, [], {
27
- value: currentBatch.totalMsgValue.toHexString(),
28
- });
29
- totalGasLimit += proposeAttestGasEstimate.toNumber();
30
- for (const [executionDetails, messageDetails,] of currentBatch.executeBatchDataArgs) {
31
- totalGasLimit += executionDetails[2].toNumber();
32
- }
33
- totalGasLimit = Math.floor(1.1 * totalGasLimit + 100000); // for safety
34
- currentBatch.totalGasLimit = totalGasLimit;
35
- (0, utils_1.logInfo)({
36
- info: "FINAL_GAS_LIMIT",
37
- totalGasLimit,
38
- packetIds: currentBatch.proposeBatchDataArgs.map((a) => a[0]),
39
- timeTaken: Date.now() - start,
40
- messageIds: [],
41
- });
42
- }
43
- catch (error) {
44
- console.log("Error in calculateBatchGasLimit", error);
45
- }
46
- return currentBatch;
47
- };
48
- exports.calculateBatchGasLimit = calculateBatchGasLimit;
49
- const checkGasLimitAndAddToBatch = async (dstChainSlug, currentGasLimit, currentBatch, batchArgsArray) => {
50
- const maxGasLimit = (0, gasEstimation_1.getMaxGasLimit)(dstChainSlug);
51
- // console.log("maxGasLimit", maxGasLimit);
52
- if (currentGasLimit > maxGasLimit) {
53
- currentBatch = await (0, exports.calculateBatchGasLimit)(dstChainSlug, currentBatch);
54
- // console.log(currentBatch.proposeRowIds, currentBatch.attestRowIds, currentBatch.messageRowIds);
55
- batchArgsArray.push(currentBatch);
56
- currentBatch = {
57
- proposeBatchDataArgs: [],
58
- attestBatchDataArgs: [],
59
- executeBatchDataArgs: [],
60
- totalMsgValue: ethers_1.BigNumber.from(0),
61
- totalGasLimit: 0,
62
- proposeRowIds: [],
63
- attestRowIds: [],
64
- messageRowIds: [],
65
- };
66
- currentGasLimit = 0;
67
- }
68
- return { currentGasLimit, batchArgsArray, currentBatch };
69
- };
70
- exports.checkGasLimitAndAddToBatch = checkGasLimitAndAddToBatch;
71
- const getBatchDataArgs = async (packets, packetAttestSignatures, packetProposalCounts) => {
72
- let currentGasLimit = 0;
73
- let packetGasLimit = 0;
74
- let skip = false;
75
- let batchArgsArray = [];
76
- let currentBatch = {
77
- proposeBatchDataArgs: [],
78
- attestBatchDataArgs: [],
79
- executeBatchDataArgs: [],
80
- totalMsgValue: ethers_1.BigNumber.from(0),
81
- totalGasLimit: 0,
82
- proposeRowIds: [],
83
- attestRowIds: [],
84
- messageRowIds: [],
85
- };
86
- for (const packet of packets) {
87
- // before start of every iteration, check if currentGasLimit is greater than
88
- // maxGasLimit and reset packetGasLimit. Ignored on first iteration.
89
- currentGasLimit += packetGasLimit;
90
- ({ currentGasLimit, currentBatch, batchArgsArray } =
91
- await (0, exports.checkGasLimitAndAddToBatch)(packet.dstChainSlug, currentGasLimit, currentBatch, batchArgsArray));
92
- packetGasLimit = 0;
93
- skip = false;
94
- ({ currentBatch, packetGasLimit, skip } = await addProposeArgs(packet, currentBatch, packetGasLimit));
95
- if (skip)
96
- continue;
97
- ({ currentBatch, packetGasLimit, skip } = await addAttestArgs(packet, packetAttestSignatures, packetProposalCounts, currentBatch, packetGasLimit));
98
- if (skip)
99
- continue;
100
- if (!constants_1.executeRelayMode)
101
- continue;
102
- ({ currentBatch, packetGasLimit, skip } = await addExecuteArgs(packet, currentBatch, packetGasLimit, packetProposalCounts));
103
- if (skip)
104
- continue;
105
- }
106
- if (currentBatch.proposeBatchDataArgs.length > 0 ||
107
- currentBatch.attestBatchDataArgs.length > 0 ||
108
- currentBatch.executeBatchDataArgs.length > 0) {
109
- currentBatch = await (0, exports.calculateBatchGasLimit)(packets[0].dstChainSlug, currentBatch);
110
- batchArgsArray.push(currentBatch);
111
- }
112
- return batchArgsArray;
113
- };
114
- exports.getBatchDataArgs = getBatchDataArgs;
115
- const addProposeArgs = async (packet, currentBatch, packetGasLimit) => {
116
- // If not proposed, and proposeRelayMode is also false, no point in continuing.
117
- // If proposeRelayMode is false, but isProposed is true, we can still proceed if
118
- // attest and execute is pending (and their relay mode is true)
119
- if (!constants_1.proposeRelayMode && !packet.isProposed) {
120
- return { currentBatch, packetGasLimit, skip: true };
121
- }
122
- if (!packet.isProposed) {
123
- currentBatch.proposeBatchDataArgs.push([
124
- packet.packetId,
125
- packet.root,
126
- packet.dstSwitchboard,
127
- packet.sealSignature,
128
- ]);
129
- currentBatch.proposeRowIds.push(packet.id);
130
- const proposeGasLimit = await (0, gasEstimationService_1.getProposeGasLimit)(packet.dstChainSlug);
131
- packetGasLimit += proposeGasLimit;
132
- }
133
- return { currentBatch, packetGasLimit, skip: false };
134
- };
135
- const addAttestArgs = async (packet, packetAttestSignatures, packetProposalCounts, currentBatch, packetGasLimit) => {
136
- // if fast integration type and not attested, and got enough signatures, add to attest batch.
137
- // if not attested and didnt get enough signatures, continue from here.
138
- // attestRelayMode check inside attestService. we get empty packetAttestSignatures
139
- // and therefore no attestations, and no message execution(if attestation pending).
140
- var _a;
141
- if ([dl_core_1.IntegrationTypes.fast, dl_core_1.IntegrationTypes.fast2].includes(packet.integrationType) &&
142
- !packet.isAttested) {
143
- if ((_a = packetAttestSignatures[packet.packetId]) === null || _a === void 0 ? void 0 : _a.length) {
144
- const attestGasLimit = await (0, gasEstimationService_1.getAttestGasLimit)(packet.dstChainSlug);
145
- packetAttestSignatures[packet.packetId].map(async (signature) => {
146
- currentBatch.attestBatchDataArgs.push([
147
- packet.dstSwitchboard,
148
- packet.packetId,
149
- packetProposalCounts[packet.packetId].count,
150
- packet.root,
151
- signature,
152
- ]);
153
- packetGasLimit += attestGasLimit;
154
- });
155
- currentBatch.attestRowIds.push(packet.id);
156
- }
157
- else {
158
- // If not already attested, and didnt get enough signatures now as well, no point
159
- // batching message execution. continue from here.
160
- return { currentBatch, packetGasLimit, skip: true };
161
- }
162
- }
163
- return { currentBatch, packetGasLimit, skip: false };
164
- };
165
- const addExecuteArgs = async (packet, currentBatch, packetGasLimit, packetProposalCounts) => {
166
- // while getting isProposed false packets, we might get native packets
167
- // with isVerified false, but valid message. skip their execution.
168
- // wont appear in query again as soon as proposed.
169
- if ([dl_core_1.IntegrationTypes.native, dl_core_1.IntegrationTypes.optimistic].includes(packet.integrationType) &&
170
- !packet.isVerified)
171
- return { currentBatch, packetGasLimit, skip: true };
172
- const messages = packet.Messages;
173
- if (messages === null || messages === void 0 ? void 0 : messages.length)
174
- for (const message of messages) {
175
- const { retry, messageId, executeMsgGasLimit, executeSignature, inboundSuccess, packetId, decapacitorProof, executionFee, minMsgGasLimit, executionParams, payload, id, } = message;
176
- currentBatch.messageRowIds.push(id);
177
- if (executionParams.slice(0, 4) !== "0x00") {
178
- const msgValue = ethers_1.BigNumber.from("0x" + executionParams.slice(4));
179
- currentBatch.totalMsgValue = currentBatch.totalMsgValue.add(msgValue);
180
- }
181
- currentBatch.executeBatchDataArgs.push([
182
- // executionDetails,
183
- [
184
- packetId,
185
- packetProposalCounts[packetId].count,
186
- ethers_1.BigNumber.from(executeMsgGasLimit),
187
- decapacitorProof,
188
- executeSignature,
189
- ],
190
- // msgDetails
191
- [messageId, executionFee, minMsgGasLimit, executionParams, payload],
192
- ]);
193
- const executeGasLimit = ethers_1.BigNumber.from(executeMsgGasLimit).toNumber();
194
- packetGasLimit += executeGasLimit;
195
- }
196
- return { currentBatch, packetGasLimit, skip: false };
197
- };
@@ -1,209 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.saveMessageSimulationResponse = exports.sendPendingSimulationRequest = exports.sendRetrySimulationRequest = void 0;
4
- const utils_1 = require("../../dl-common/utils");
5
- const utils_2 = require("../utils");
6
- const constants_1 = require("../constants");
7
- const models_1 = require("../../dl-common/models");
8
- const sequelize_1 = require("sequelize");
9
- const prometheus_config_1 = require("../constants/prometheus.config");
10
- const constants_2 = require("../../dl-common/constants");
11
- const ethers_1 = require("ethers");
12
- const sendRequest = async (messages) => {
13
- const executeRequestData = [];
14
- const start = Date.now();
15
- for (const message of messages) {
16
- executeRequestData.push({
17
- messageId: message.messageId,
18
- destPlug: message.destPlug,
19
- srcPlug: message.srcPlug,
20
- dstChainSlug: message.dstChainSlug,
21
- srcChainSlug: message.srcChainSlug,
22
- payload: message.payload,
23
- minMsgGasLimit: message.minMsgGasLimit,
24
- executionParams: message.executionParams,
25
- packedMessage: message.packedMessage,
26
- });
27
- }
28
- (0, utils_2.logInfo)({
29
- info: "EXECUTOR_POST_API_CALLING",
30
- messageIds: messages.map((m) => m.messageId),
31
- start,
32
- packetIds: [],
33
- });
34
- if (constants_1.EXECUTOR_URL) {
35
- const response = await (0, utils_1.axiosPost)(constants_1.EXECUTOR_URL, { messageData: executeRequestData }, { headers: { "x-auth-token": constants_1.EXECUTOR_AUTH_TOKEN } });
36
- (0, utils_2.logInfo)({
37
- info: "EXECUTOR_POST_API_CALLED",
38
- messageIds: messages.map((m) => m.messageId),
39
- packetIds: [],
40
- end: Date.now() - start,
41
- response,
42
- });
43
- }
44
- else {
45
- // @review throw here?
46
- console.log("Call to executor failed");
47
- }
48
- };
49
- const sendRetrySimulationRequest = async () => {
50
- try {
51
- const messages = await getRetrySimulationMessages();
52
- if (messages.length == 0)
53
- return;
54
- (0, utils_2.logInfo)({
55
- info: "RETRY_SIMULATION_REQUEST",
56
- msgCount: messages.length,
57
- messageIds: messages.map((m) => m.messageId),
58
- packetIds: [],
59
- });
60
- const messagesAsChunks = [...(0, utils_1.chunks)(messages, constants_1.executeBatchRelayLimit)];
61
- for (const chunk of messagesAsChunks)
62
- await sendRequest(chunk);
63
- }
64
- catch (error) {
65
- console.log("error while sending retry simulation request: ", error);
66
- }
67
- };
68
- exports.sendRetrySimulationRequest = sendRetrySimulationRequest;
69
- const sendPendingSimulationRequest = async () => {
70
- try {
71
- const messages = await getPendingSimulationMessages();
72
- if (messages.length > 0) {
73
- (0, utils_2.logInfo)({
74
- info: "PENDING_SIMULATION_REQUEST",
75
- msgCount: messages.length,
76
- messageIds: messages.map((m) => m.messageId),
77
- packetIds: [],
78
- });
79
- const messagesAsChunks = [...(0, utils_1.chunks)(messages, constants_1.executeBatchRelayLimit)];
80
- for (const chunk of messagesAsChunks)
81
- await sendRequest(chunk);
82
- (0, utils_2.logInfo)({
83
- info: "PENDING_SIMULATION_REQUEST_SENT",
84
- messageIds: messages.map((m) => m.messageId),
85
- packetIds: [],
86
- });
87
- }
88
- }
89
- catch (error) {
90
- console.log("error while sendMessageSimulationRequest request: ", error);
91
- }
92
- };
93
- exports.sendPendingSimulationRequest = sendPendingSimulationRequest;
94
- const saveMessageSimulationResponse = async (executeResponseData) => {
95
- if (!(executeResponseData === null || executeResponseData === void 0 ? void 0 : executeResponseData.length))
96
- return;
97
- const messageIds = [];
98
- executeResponseData.map((data) => {
99
- messageIds.push(data.messageId);
100
- });
101
- const messages = await models_1.Message.findAll({
102
- where: {
103
- messageId: { [sequelize_1.Op.in]: messageIds },
104
- },
105
- });
106
- const messageMap = new Map();
107
- messages.forEach((message) => {
108
- messageMap.set(message.messageId, message);
109
- });
110
- if (executeResponseData === null || executeResponseData === void 0 ? void 0 : executeResponseData.length) {
111
- executeResponseData = executeResponseData.map((data) => {
112
- var _a;
113
- const firstSimulationTimestamp = Math.floor(Date.now() / 1000);
114
- let executeRelayStatus = models_1.ExecutionRelayStatus.NO;
115
- const MaxMsgGasLimit = (0, constants_1.getMaxMsgGasLimit)((_a = messageMap.get(data.messageId)) === null || _a === void 0 ? void 0 : _a.dstChainSlug);
116
- // mark ignored if msgGasLimit mentioned is too big
117
- if (ethers_1.BigNumber.from(data.executeMsgGasLimit).gt(MaxMsgGasLimit)) {
118
- executeRelayStatus = models_1.ExecutionRelayStatus.IGNORED;
119
- }
120
- if (data.inboundRevertString === constants_2.ErrorReasons.ZERO_AMOUNT) {
121
- executeRelayStatus = models_1.ExecutionRelayStatus.IGNORED;
122
- }
123
- return {
124
- ...data,
125
- firstSimulationTimestamp,
126
- executeRelayStatus,
127
- };
128
- });
129
- (0, utils_2.logInfo)({
130
- info: "UPDATING_SIMULATION_STATES",
131
- msgCount: executeResponseData.length,
132
- messageIds: executeResponseData.map((m) => m.messageId),
133
- packetIds: [],
134
- });
135
- await saveMessageUpdates(executeResponseData);
136
- (0, utils_2.logInfo)({
137
- info: "UPDATED_SIMULATION_STATES",
138
- messageIds: executeResponseData.map((m) => m.messageId),
139
- packetIds: [],
140
- });
141
- }
142
- messages.forEach((message) => {
143
- (0, prometheus_config_1.observeHistogram)(prometheus_config_1.relayMetrics.executeRelay.signHistogram, {
144
- labels: {
145
- [prometheus_config_1.Labels.SRC_CHAIN_SLUG]: message.srcChainSlug,
146
- [prometheus_config_1.Labels.DST_CHAIN_SLUG]: message.dstChainSlug,
147
- },
148
- timeDiff: (0, utils_1.currentTimestampInSeconds)() - message.outboundTime,
149
- });
150
- });
151
- };
152
- exports.saveMessageSimulationResponse = saveMessageSimulationResponse;
153
- const saveMessageUpdates = async (dbUpdates) => {
154
- try {
155
- // TODO: fix this
156
- // @ts-expect-error
157
- await models_1.Message.bulkCreate(dbUpdates, {
158
- updateOnDuplicate: [
159
- "retry",
160
- "inboundSuccess",
161
- "inboundRevertString",
162
- "firstSimulationTimestamp",
163
- "executeSignature",
164
- "executeMsgGasLimit",
165
- "executeRelayStatus",
166
- ],
167
- });
168
- }
169
- catch (error) {
170
- utils_2.logger.error("Error while saving execute signature updates", error);
171
- throw new Error(`Error while saving execute signature updates ${error === null || error === void 0 ? void 0 : error.message}`);
172
- }
173
- };
174
- const getPendingSimulationMessages = async () => {
175
- return await models_1.Message.findAll({
176
- limit: constants_1.executeBatchQueryLimit,
177
- where: {
178
- isExecuted: false,
179
- executeRelayStatus: {
180
- [sequelize_1.Op.not]: models_1.ExecutionRelayStatus.IGNORED,
181
- },
182
- firstSimulationTimestamp: 0,
183
- },
184
- order: [["updatedAt", "ASC"]],
185
- });
186
- };
187
- const getRetrySimulationMessages = async () => {
188
- return await models_1.Message.findAll({
189
- limit: constants_1.executeBatchQueryLimit,
190
- where: {
191
- isExecuted: false,
192
- // already checked before, and within retry interval period
193
- firstSimulationTimestamp: {
194
- [sequelize_1.Op.gt]: Math.floor(Date.now() / 1000) - constants_1.retryInterval,
195
- },
196
- [sequelize_1.Op.or]: [
197
- {
198
- inboundSuccess: false,
199
- },
200
- {
201
- retry: false,
202
- },
203
- ],
204
- // ignore already executed, failed, executing, and ignored messages
205
- executeRelayStatus: models_1.ExecutionRelayStatus.NO,
206
- },
207
- order: [["updatedAt", "ASC"]],
208
- });
209
- };
@@ -1,154 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SocketSigner = exports.EIP712_SAFE_TX_TYPE = void 0;
7
- const relaySigner_1 = require("../relaySigner");
8
- const ethers_1 = require("ethers");
9
- const MultiSigWrapper_json_1 = __importDefault(require("@socket.tech/dl-core/artifacts/abi/MultiSigWrapper.json"));
10
- const Safe_json_1 = __importDefault(require("@socket.tech/dl-core/artifacts/abi/Safe.json"));
11
- const utils_1 = require("ethers/lib/utils");
12
- exports.EIP712_SAFE_TX_TYPE = {
13
- // "SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)"
14
- SafeTx: [
15
- { type: "address", name: "to" },
16
- { type: "uint256", name: "value" },
17
- { type: "bytes", name: "data" },
18
- { type: "uint8", name: "operation" },
19
- { type: "uint256", name: "safeTxGas" },
20
- { type: "uint256", name: "baseGas" },
21
- { type: "uint256", name: "gasPrice" },
22
- { type: "address", name: "gasToken" },
23
- { type: "address", name: "refundReceiver" },
24
- { type: "uint256", name: "nonce" },
25
- ],
26
- };
27
- class SocketSigner extends relaySigner_1.SocketRelaySigner {
28
- constructor(provider, chainId,
29
- // address of safe
30
- safeAddress,
31
- // address of safe wrapper to store sign
32
- safeWrapperAddress, relayUrl, relayerAPIKey,
33
- // wallet for signing safe hash data
34
- signingWallet,
35
- // if you want to relay tx to wrapper
36
- useSafe = false,
37
- // if you want to relay tx using EOA, otherwise it will use relayer
38
- useEOA = false, sequential = false,
39
- // if isCritical is set to true, will try multiple relayers
40
- // to get the transaction included
41
- isCritical = false, metadata = {}) {
42
- super(provider, chainId, relayUrl, relayerAPIKey, sequential, isCritical, metadata);
43
- this.provider = provider;
44
- this.chainId = chainId;
45
- this.safeAddress = safeAddress;
46
- this.safeWrapperAddress = safeWrapperAddress;
47
- this.relayUrl = relayUrl;
48
- this.relayerAPIKey = relayerAPIKey;
49
- this.signingWallet = signingWallet;
50
- this.useSafe = useSafe;
51
- this.useEOA = useEOA;
52
- this.sequential = sequential;
53
- this.isCritical = isCritical;
54
- this.metadata = metadata;
55
- this.address =
56
- this.signingWallet != null
57
- ? this.signingWallet.address
58
- : "0x5367Efc17020Aa1CF0943bA7eD17f1D3e4c7d7EE";
59
- if (this.safeWrapperAddress.length !== 0 ||
60
- this.safeWrapperAddress !== ethers_1.constants.AddressZero)
61
- this.safeWrapperContract = new ethers_1.Contract(this.safeWrapperAddress, MultiSigWrapper_json_1.default, this.provider);
62
- if (this.safeAddress.length !== 0 ||
63
- this.safeAddress !== ethers_1.constants.AddressZero)
64
- this.safeContract = new ethers_1.Contract(this.safeAddress, Safe_json_1.default, this.provider);
65
- }
66
- setSigningWallet(signingWallet) {
67
- return new SocketSigner(this.provider, this.chainId, this.safeAddress, this.safeWrapperAddress, this.relayUrl, this.relayerAPIKey, signingWallet, this.useSafe, this.useEOA, this.sequential, this.isCritical, this.metadata);
68
- }
69
- setSafeWrapperAddress(safeWrapperAddress) {
70
- return new SocketSigner(this.provider, this.chainId, this.safeAddress, safeWrapperAddress, this.relayUrl, this.relayerAPIKey, this.signingWallet, this.useSafe, this.useEOA, this.sequential, this.isCritical, this.metadata);
71
- }
72
- setSafeAddress(safeAddress) {
73
- return new SocketSigner(this.provider, this.chainId, safeAddress, this.safeWrapperAddress, this.relayUrl, this.relayerAPIKey, this.signingWallet, this.useSafe, this.useEOA, this.sequential, this.isCritical, this.metadata);
74
- }
75
- async getAddress() {
76
- if (this.signingWallet != null)
77
- return this.signingWallet.address;
78
- return await super.getAddress();
79
- }
80
- async sendTransaction(transaction) {
81
- var _a, _b;
82
- if (this.useSafe) {
83
- if (this.safeAddress.length === 0 ||
84
- this.safeAddress === ethers_1.constants.AddressZero)
85
- throw new Error("safeAddress not provided");
86
- if (this.safeWrapperContract == null)
87
- throw new Error("safe wrapper not provided");
88
- if (this.signingWallet == null)
89
- throw new Error("signingWallet not provided");
90
- const signerAddress = await this.getAddress();
91
- const safeNonce = Number(await this.safeContract.nonce());
92
- let nonce = Number(await this.safeWrapperContract.lastNonce(signerAddress));
93
- if (safeNonce != 0) {
94
- nonce = safeNonce > nonce ? safeNonce : nonce + 1;
95
- }
96
- else if (nonce !== 0)
97
- nonce++;
98
- if (await this.isTxHashSubmitted(transaction))
99
- throw new Error("tx already submitted!");
100
- const contractData = {
101
- to: transaction.to,
102
- value: (_a = transaction.value) !== null && _a !== void 0 ? _a : 0,
103
- data: (_b = transaction.data) !== null && _b !== void 0 ? _b : "0x",
104
- operation: 0,
105
- safeTxGas: 0,
106
- baseGas: 0,
107
- gasPrice: 0,
108
- gasToken: ethers_1.constants.AddressZero,
109
- refundReceiver: ethers_1.constants.AddressZero,
110
- nonce,
111
- };
112
- const signature = await this.signingWallet._signTypedData({ verifyingContract: this.safeAddress, chainId: this.chainId }, exports.EIP712_SAFE_TX_TYPE, contractData);
113
- // update to & data
114
- transaction.data = this.safeWrapperContract.interface.encodeFunctionData("storeOrRelaySignatures", [
115
- this.signingWallet.address,
116
- contractData.to,
117
- nonce,
118
- contractData.value,
119
- contractData.data,
120
- signature,
121
- ]);
122
- transaction.to = this.safeWrapperAddress;
123
- }
124
- if (this.useEOA) {
125
- if (this.signingWallet == null)
126
- throw new Error("signingWallet not provided");
127
- return await this.signingWallet.sendTransaction(transaction);
128
- }
129
- return await super.sendTransaction(transaction);
130
- }
131
- async signMessage(message) {
132
- if (!this.signingWallet)
133
- throw Error("No Signing Wallet found!");
134
- return await this.signingWallet.signMessage(message);
135
- }
136
- async isTxHashSubmitted(transaction) {
137
- var _a, _b;
138
- if (!this.signingWallet)
139
- throw Error("No Signing Wallet found!");
140
- const dataHash = (0, utils_1.keccak256)(utils_1.defaultAbiCoder.encode(["address", "uint256", "bytes"], [transaction.to, (_a = transaction.value) !== null && _a !== void 0 ? _a : 0, (_b = transaction.data) !== null && _b !== void 0 ? _b : "0x"]));
141
- const safeParams = await this.safeWrapperContract.safeParams(dataHash, this.signingWallet.address);
142
- console.log(safeParams, "isTxSubmitted");
143
- return safeParams[1] !== "0x";
144
- }
145
- async checkAndSendTransaction(transaction) {
146
- const isSubmitted = await this.isTxHashSubmitted(transaction);
147
- if (isSubmitted)
148
- return { txSent: false, txHash: "" };
149
- const tx = await this.sendTransaction(transaction);
150
- await tx.wait();
151
- return { txSent: true, txHash: tx.hash };
152
- }
153
- }
154
- exports.SocketSigner = SocketSigner;