@humanode-hyperlane/rebalancer 27.2.2-humanode.1 → 1029.1.0

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 (295) hide show
  1. package/dist/bridges/LiFiBridge.d.ts +3 -3
  2. package/dist/bridges/LiFiBridge.d.ts.map +1 -1
  3. package/dist/bridges/LiFiBridge.js +66 -55
  4. package/dist/bridges/LiFiBridge.js.map +1 -1
  5. package/dist/bridges/LiFiBridge.test.js +213 -0
  6. package/dist/bridges/LiFiBridge.test.js.map +1 -1
  7. package/dist/config/RebalancerConfig.d.ts +4 -3
  8. package/dist/config/RebalancerConfig.d.ts.map +1 -1
  9. package/dist/config/RebalancerConfig.js +7 -5
  10. package/dist/config/RebalancerConfig.js.map +1 -1
  11. package/dist/config/RebalancerConfig.test.js +278 -2
  12. package/dist/config/RebalancerConfig.test.js.map +1 -1
  13. package/dist/config/types.d.ts +707 -2664
  14. package/dist/config/types.d.ts.map +1 -1
  15. package/dist/config/types.js +62 -7
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/core/InventoryRebalancer.d.ts +13 -19
  18. package/dist/core/InventoryRebalancer.d.ts.map +1 -1
  19. package/dist/core/InventoryRebalancer.js +404 -276
  20. package/dist/core/InventoryRebalancer.js.map +1 -1
  21. package/dist/core/InventoryRebalancer.test.js +814 -25
  22. package/dist/core/InventoryRebalancer.test.js.map +1 -1
  23. package/dist/core/Rebalancer.d.ts.map +1 -1
  24. package/dist/core/Rebalancer.js +12 -6
  25. package/dist/core/Rebalancer.js.map +1 -1
  26. package/dist/core/Rebalancer.test.js +51 -0
  27. package/dist/core/Rebalancer.test.js.map +1 -1
  28. package/dist/core/RebalancerOrchestrator.d.ts.map +1 -1
  29. package/dist/core/RebalancerOrchestrator.test.js +0 -1
  30. package/dist/core/RebalancerOrchestrator.test.js.map +1 -1
  31. package/dist/core/RebalancerService.d.ts.map +1 -1
  32. package/dist/core/RebalancerService.js +3 -2
  33. package/dist/core/RebalancerService.js.map +1 -1
  34. package/dist/core/RebalancerService.test.js +24 -0
  35. package/dist/core/RebalancerService.test.js.map +1 -1
  36. package/dist/e2e/fixtures/routes.d.ts +3 -3
  37. package/dist/e2e/fixtures/routes.d.ts.map +1 -1
  38. package/dist/e2e/harness/BaseLocalDeploymentManager.d.ts.map +1 -1
  39. package/dist/e2e/harness/BaseLocalDeploymentManager.js +3 -2
  40. package/dist/e2e/harness/BaseLocalDeploymentManager.js.map +1 -1
  41. package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.d.ts.map +1 -1
  42. package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.js.map +1 -1
  43. package/dist/e2e/harness/Erc20LocalDeploymentManager.d.ts.map +1 -1
  44. package/dist/e2e/harness/ForkIndexer.d.ts.map +1 -1
  45. package/dist/e2e/harness/ForkIndexer.js.map +1 -1
  46. package/dist/e2e/harness/LocalProvider.d.ts +3 -0
  47. package/dist/e2e/harness/LocalProvider.d.ts.map +1 -0
  48. package/dist/e2e/harness/LocalProvider.js +9 -0
  49. package/dist/e2e/harness/LocalProvider.js.map +1 -0
  50. package/dist/e2e/harness/LocalProvider.test.d.ts +2 -0
  51. package/dist/e2e/harness/LocalProvider.test.d.ts.map +1 -0
  52. package/dist/e2e/harness/LocalProvider.test.js +14 -0
  53. package/dist/e2e/harness/LocalProvider.test.js.map +1 -0
  54. package/dist/e2e/harness/MixedLocalDeploymentManager.d.ts.map +1 -1
  55. package/dist/e2e/harness/MixedLocalDeploymentManager.js.map +1 -1
  56. package/dist/e2e/harness/MockExplorerClient.d.ts.map +1 -1
  57. package/dist/e2e/harness/MockExplorerClient.js.map +1 -1
  58. package/dist/e2e/harness/MockExternalBridge.d.ts.map +1 -1
  59. package/dist/e2e/harness/MockExternalBridge.js.map +1 -1
  60. package/dist/e2e/harness/NativeLocalDeploymentManager.d.ts.map +1 -1
  61. package/dist/e2e/harness/NativeLocalDeploymentManager.js +2 -1
  62. package/dist/e2e/harness/NativeLocalDeploymentManager.js.map +1 -1
  63. package/dist/e2e/harness/SnapshotHelper.d.ts.map +1 -1
  64. package/dist/e2e/harness/SnapshotHelper.js +3 -5
  65. package/dist/e2e/harness/SnapshotHelper.js.map +1 -1
  66. package/dist/e2e/harness/TestHelpers.js +1 -2
  67. package/dist/e2e/harness/TestHelpers.js.map +1 -1
  68. package/dist/e2e/harness/TestRebalancer.d.ts +5 -1
  69. package/dist/e2e/harness/TestRebalancer.d.ts.map +1 -1
  70. package/dist/e2e/harness/TestRebalancer.js +14 -4
  71. package/dist/e2e/harness/TestRebalancer.js.map +1 -1
  72. package/dist/e2e/relayer-denylist.e2e-test.d.ts +2 -0
  73. package/dist/e2e/relayer-denylist.e2e-test.d.ts.map +1 -0
  74. package/dist/e2e/relayer-denylist.e2e-test.js +388 -0
  75. package/dist/e2e/relayer-denylist.e2e-test.js.map +1 -0
  76. package/dist/factories/RebalancerContextFactory.d.ts.map +1 -1
  77. package/dist/factories/RebalancerContextFactory.js +61 -31
  78. package/dist/factories/RebalancerContextFactory.js.map +1 -1
  79. package/dist/factories/RebalancerContextFactory.test.js +336 -5
  80. package/dist/factories/RebalancerContextFactory.test.js.map +1 -1
  81. package/dist/index.d.ts +2 -2
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +1 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/interfaces/IRebalancer.d.ts +4 -2
  86. package/dist/interfaces/IRebalancer.d.ts.map +1 -1
  87. package/dist/metrics/Metrics.d.ts.map +1 -1
  88. package/dist/metrics/Metrics.js +1 -1
  89. package/dist/metrics/Metrics.js.map +1 -1
  90. package/dist/metrics/PriceGetter.d.ts +1 -0
  91. package/dist/metrics/PriceGetter.d.ts.map +1 -1
  92. package/dist/metrics/PriceGetter.js +14 -4
  93. package/dist/metrics/PriceGetter.js.map +1 -1
  94. package/dist/metrics/PriceGetter.test.d.ts +2 -0
  95. package/dist/metrics/PriceGetter.test.d.ts.map +1 -0
  96. package/dist/metrics/PriceGetter.test.js +84 -0
  97. package/dist/metrics/PriceGetter.test.js.map +1 -0
  98. package/dist/metrics/scripts/metrics.d.ts +4 -4
  99. package/dist/monitor/Monitor.d.ts +1 -0
  100. package/dist/monitor/Monitor.d.ts.map +1 -1
  101. package/dist/monitor/Monitor.js +55 -46
  102. package/dist/monitor/Monitor.js.map +1 -1
  103. package/dist/monitor/Monitor.test.d.ts +2 -0
  104. package/dist/monitor/Monitor.test.d.ts.map +1 -0
  105. package/dist/monitor/Monitor.test.js +346 -0
  106. package/dist/monitor/Monitor.test.js.map +1 -0
  107. package/dist/service.d.ts +1 -1
  108. package/dist/service.d.ts.map +1 -1
  109. package/dist/service.js +9 -5
  110. package/dist/service.js.map +1 -1
  111. package/dist/strategy/BaseStrategy.d.ts.map +1 -1
  112. package/dist/strategy/BaseStrategy.js +13 -11
  113. package/dist/strategy/BaseStrategy.js.map +1 -1
  114. package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -1
  115. package/dist/strategy/CollateralDeficitStrategy.js +2 -2
  116. package/dist/strategy/CollateralDeficitStrategy.js.map +1 -1
  117. package/dist/strategy/CompositeStrategy.d.ts.map +1 -1
  118. package/dist/strategy/CompositeStrategy.js.map +1 -1
  119. package/dist/strategy/CompositeStrategy.test.js.map +1 -1
  120. package/dist/strategy/MinAmountStrategy.d.ts +1 -0
  121. package/dist/strategy/MinAmountStrategy.d.ts.map +1 -1
  122. package/dist/strategy/MinAmountStrategy.js +12 -8
  123. package/dist/strategy/MinAmountStrategy.js.map +1 -1
  124. package/dist/strategy/MinAmountStrategy.test.js +189 -2
  125. package/dist/strategy/MinAmountStrategy.test.js.map +1 -1
  126. package/dist/strategy/StrategyFactory.d.ts.map +1 -1
  127. package/dist/strategy/StrategyFactory.js.map +1 -1
  128. package/dist/strategy/WeightedStrategy.d.ts.map +1 -1
  129. package/dist/test/helpers.d.ts +11 -3
  130. package/dist/test/helpers.d.ts.map +1 -1
  131. package/dist/test/helpers.js +9 -11
  132. package/dist/test/helpers.js.map +1 -1
  133. package/dist/test/lifiMocks.d.ts +6 -6
  134. package/dist/test/lifiMocks.d.ts.map +1 -1
  135. package/dist/test/lifiMocks.js +5 -2
  136. package/dist/test/lifiMocks.js.map +1 -1
  137. package/dist/test/pendingTransferMiddlewareMocks.d.ts +17 -0
  138. package/dist/test/pendingTransferMiddlewareMocks.d.ts.map +1 -0
  139. package/dist/test/pendingTransferMiddlewareMocks.js +43 -0
  140. package/dist/test/pendingTransferMiddlewareMocks.js.map +1 -0
  141. package/dist/tracking/ActionTracker.d.ts +4 -0
  142. package/dist/tracking/ActionTracker.d.ts.map +1 -1
  143. package/dist/tracking/ActionTracker.js +76 -9
  144. package/dist/tracking/ActionTracker.js.map +1 -1
  145. package/dist/tracking/ActionTracker.test.js +418 -1
  146. package/dist/tracking/ActionTracker.test.js.map +1 -1
  147. package/dist/tracking/IActionTracker.d.ts +4 -2
  148. package/dist/tracking/IActionTracker.d.ts.map +1 -1
  149. package/dist/tracking/InflightContextAdapter.d.ts.map +1 -1
  150. package/dist/tracking/InflightContextAdapter.js.map +1 -1
  151. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.d.ts +64 -0
  152. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.d.ts.map +1 -0
  153. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.js +474 -0
  154. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.js.map +1 -0
  155. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.test.d.ts +2 -0
  156. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.test.d.ts.map +1 -0
  157. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.test.js +1168 -0
  158. package/dist/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.test.js.map +1 -0
  159. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.d.ts +61 -0
  160. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.d.ts.map +1 -0
  161. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.js +160 -0
  162. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.js.map +1 -0
  163. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.test.d.ts +2 -0
  164. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.test.d.ts.map +1 -0
  165. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.test.js +369 -0
  166. package/dist/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.test.js.map +1 -0
  167. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.d.ts +60 -0
  168. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.d.ts.map +1 -0
  169. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.js +288 -0
  170. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.js.map +1 -0
  171. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.test.d.ts +2 -0
  172. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.test.d.ts.map +1 -0
  173. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.test.js +606 -0
  174. package/dist/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.test.js.map +1 -0
  175. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.d.ts +25 -0
  176. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.d.ts.map +1 -0
  177. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.js +41 -0
  178. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.js.map +1 -0
  179. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.test.d.ts +2 -0
  180. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.test.d.ts.map +1 -0
  181. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.test.js +141 -0
  182. package/dist/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.test.js.map +1 -0
  183. package/dist/tracking/pendingTransferMiddlewares/matchBody.d.ts +12 -0
  184. package/dist/tracking/pendingTransferMiddlewares/matchBody.d.ts.map +1 -0
  185. package/dist/tracking/pendingTransferMiddlewares/matchBody.js +29 -0
  186. package/dist/tracking/pendingTransferMiddlewares/matchBody.js.map +1 -0
  187. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.d.ts +59 -0
  188. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.d.ts.map +1 -0
  189. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.js +661 -0
  190. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.js.map +1 -0
  191. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.test.d.ts +2 -0
  192. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.test.d.ts.map +1 -0
  193. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.test.js +1093 -0
  194. package/dist/tracking/pendingTransferMiddlewares/relayerDenylistRules.test.js.map +1 -0
  195. package/dist/tracking/pendingTransferMiddlewares/types.d.ts +2 -0
  196. package/dist/tracking/pendingTransferMiddlewares/types.d.ts.map +1 -0
  197. package/dist/tracking/pendingTransferMiddlewares/types.js +4 -0
  198. package/dist/tracking/pendingTransferMiddlewares/types.js.map +1 -0
  199. package/dist/tracking/store/InMemoryStore.d.ts.map +1 -1
  200. package/dist/utils/ExplorerClient.d.ts +1 -0
  201. package/dist/utils/ExplorerClient.d.ts.map +1 -1
  202. package/dist/utils/ExplorerClient.js +8 -3
  203. package/dist/utils/ExplorerClient.js.map +1 -1
  204. package/dist/utils/ExplorerClient.test.js +25 -0
  205. package/dist/utils/ExplorerClient.test.js.map +1 -1
  206. package/dist/utils/balanceUtils.d.ts +7 -1
  207. package/dist/utils/balanceUtils.d.ts.map +1 -1
  208. package/dist/utils/balanceUtils.js +39 -1
  209. package/dist/utils/balanceUtils.js.map +1 -1
  210. package/dist/utils/balanceUtils.test.js +55 -1
  211. package/dist/utils/balanceUtils.test.js.map +1 -1
  212. package/dist/utils/blockTag.d.ts +5 -4
  213. package/dist/utils/blockTag.d.ts.map +1 -1
  214. package/dist/utils/blockTag.js +26 -10
  215. package/dist/utils/blockTag.js.map +1 -1
  216. package/dist/utils/blockTag.test.d.ts +2 -0
  217. package/dist/utils/blockTag.test.d.ts.map +1 -0
  218. package/dist/utils/blockTag.test.js +132 -0
  219. package/dist/utils/blockTag.test.js.map +1 -0
  220. package/dist/utils/bridgeUtils.js.map +1 -1
  221. package/dist/utils/errors.d.ts.map +1 -1
  222. package/dist/utils/gasEstimation.d.ts +2 -1
  223. package/dist/utils/gasEstimation.d.ts.map +1 -1
  224. package/dist/utils/gasEstimation.js +16 -13
  225. package/dist/utils/gasEstimation.js.map +1 -1
  226. package/dist/utils/gasEstimation.test.d.ts +2 -0
  227. package/dist/utils/gasEstimation.test.d.ts.map +1 -0
  228. package/dist/utils/gasEstimation.test.js +104 -0
  229. package/dist/utils/gasEstimation.test.js.map +1 -0
  230. package/dist/utils/tokenUtils.d.ts.map +1 -1
  231. package/dist/utils/tokenUtils.js +5 -2
  232. package/dist/utils/tokenUtils.js.map +1 -1
  233. package/package.json +23 -22
  234. package/src/bridges/LiFiBridge.test.ts +270 -0
  235. package/src/bridges/LiFiBridge.ts +90 -71
  236. package/src/config/RebalancerConfig.test.ts +315 -1
  237. package/src/config/RebalancerConfig.ts +6 -3
  238. package/src/config/types.ts +98 -8
  239. package/src/core/InventoryRebalancer.test.ts +1092 -38
  240. package/src/core/InventoryRebalancer.ts +584 -351
  241. package/src/core/Rebalancer.test.ts +84 -0
  242. package/src/core/Rebalancer.ts +22 -6
  243. package/src/core/RebalancerOrchestrator.test.ts +0 -1
  244. package/src/core/RebalancerService.test.ts +35 -0
  245. package/src/core/RebalancerService.ts +3 -2
  246. package/src/e2e/harness/BaseLocalDeploymentManager.ts +3 -1
  247. package/src/e2e/harness/LocalProvider.test.ts +16 -0
  248. package/src/e2e/harness/LocalProvider.ts +10 -0
  249. package/src/e2e/harness/NativeLocalDeploymentManager.ts +2 -1
  250. package/src/e2e/harness/SnapshotHelper.ts +2 -5
  251. package/src/e2e/harness/TestHelpers.ts +3 -3
  252. package/src/e2e/harness/TestRebalancer.ts +21 -1
  253. package/src/e2e/relayer-denylist.e2e-test.ts +558 -0
  254. package/src/factories/RebalancerContextFactory.test.ts +489 -8
  255. package/src/factories/RebalancerContextFactory.ts +86 -36
  256. package/src/index.ts +2 -0
  257. package/src/interfaces/IRebalancer.ts +4 -1
  258. package/src/metrics/Metrics.ts +1 -0
  259. package/src/metrics/PriceGetter.test.ts +113 -0
  260. package/src/metrics/PriceGetter.ts +18 -3
  261. package/src/monitor/Monitor.test.ts +408 -0
  262. package/src/monitor/Monitor.ts +123 -97
  263. package/src/service.ts +14 -8
  264. package/src/strategy/BaseStrategy.ts +18 -15
  265. package/src/strategy/CollateralDeficitStrategy.ts +4 -3
  266. package/src/strategy/MinAmountStrategy.test.ts +238 -2
  267. package/src/strategy/MinAmountStrategy.ts +29 -17
  268. package/src/test/helpers.ts +13 -12
  269. package/src/test/lifiMocks.ts +5 -2
  270. package/src/test/pendingTransferMiddlewareMocks.ts +65 -0
  271. package/src/tracking/ActionTracker.test.ts +635 -3
  272. package/src/tracking/ActionTracker.ts +92 -12
  273. package/src/tracking/IActionTracker.ts +4 -2
  274. package/src/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.test.ts +1693 -0
  275. package/src/tracking/pendingTransferMiddlewares/BlacklistIsmMiddleware.ts +784 -0
  276. package/src/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.test.ts +554 -0
  277. package/src/tracking/pendingTransferMiddlewares/PendingTransferMiddleware.ts +233 -0
  278. package/src/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.test.ts +894 -0
  279. package/src/tracking/pendingTransferMiddlewares/RelayerDenylistMiddleware.ts +404 -0
  280. package/src/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.test.ts +205 -0
  281. package/src/tracking/pendingTransferMiddlewares/buildPendingTransferMiddlewares.ts +89 -0
  282. package/src/tracking/pendingTransferMiddlewares/fixtures/mainnet-denylist.json +3556 -0
  283. package/src/tracking/pendingTransferMiddlewares/matchBody.ts +43 -0
  284. package/src/tracking/pendingTransferMiddlewares/relayerDenylistRules.test.ts +1220 -0
  285. package/src/tracking/pendingTransferMiddlewares/relayerDenylistRules.ts +934 -0
  286. package/src/tracking/pendingTransferMiddlewares/types.ts +3 -0
  287. package/src/utils/ExplorerClient.test.ts +42 -0
  288. package/src/utils/ExplorerClient.ts +14 -3
  289. package/src/utils/balanceUtils.test.ts +87 -1
  290. package/src/utils/balanceUtils.ts +73 -2
  291. package/src/utils/blockTag.test.ts +173 -0
  292. package/src/utils/blockTag.ts +35 -15
  293. package/src/utils/gasEstimation.test.ts +192 -0
  294. package/src/utils/gasEstimation.ts +17 -11
  295. package/src/utils/tokenUtils.ts +5 -2
@@ -127,7 +127,7 @@ export class Metrics {
127
127
  }, 'Getting extra lockbox limits', this.logger), tryFn(async () => {
128
128
  const balance = await getExtraLockboxBalance(this.warpCore.multiProvider, token, this.priceGetter, lockbox.lockbox, this.logger);
129
129
  if (balance) {
130
- const { tokenName, tokenAddress } = await getManagedLockBoxCollateralInfo(this.warpCore.multiProvider, token, lockbox.lockbox);
130
+ const { tokenName, tokenAddress } = await getManagedLockBoxCollateralInfo(this.warpCore.multiProvider, token, lockbox.lockbox, balance.tokenAddress);
131
131
  updateManagedLockboxBalanceMetrics(this.warpCore, token.chainName, tokenName, tokenAddress, lockbox.lockbox, balance, this.warpRouteId, this.logger);
132
132
  }
133
133
  }, `Updating extra lockbox balance for contract at "${lockbox.lockbox}" on chain ${token.chainName}`, this.logger));
@@ -1 +1 @@
1
- {"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type Logger } from 'pino';
2
2
  import { type ChainMap, type ChainMetadata, CoinGeckoTokenPriceGetter, type Token } from '@humanode-hyperlane/sdk';
3
3
  export declare class PriceGetter extends CoinGeckoTokenPriceGetter {
4
4
  private readonly logger;
5
+ private readonly pendingPrices;
5
6
  private constructor();
6
7
  static create(chainMetadata: ChainMap<ChainMetadata>, logger: Logger, coingeckoApiKey?: string, expirySeconds?: number, sleepMsBetweenRequests?: number): PriceGetter;
7
8
  tryGetTokenPrice(token: Token): Promise<number | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"PriceGetter.d.ts","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,yBAAyB,EACzB,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,WAAY,SAAQ,yBAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO;WAiBO,MAAM,CAClB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,EACtB,sBAAsB,CAAC,EAAE,MAAM;IAa3B,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqB3D,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAK1E"}
1
+ {"version":3,"file":"PriceGetter.d.ts","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,yBAAyB,EACzB,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,WAAY,SAAQ,yBAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;IAEJ,OAAO,eAeN;IAED,OAAc,MAAM,CAClB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,EACtB,sBAAsB,CAAC,EAAE,MAAM,eAShC;IAIK,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmBhE;IAEK,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAexE;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { CoinGeckoTokenPriceGetter, } from '@humanode-hyperlane/sdk';
2
2
  export class PriceGetter extends CoinGeckoTokenPriceGetter {
3
3
  logger;
4
+ pendingPrices = new Map();
4
5
  constructor({ chainMetadata, logger, apiKey, expirySeconds, sleepMsBetweenRequests, }) {
5
6
  super({ chainMetadata, apiKey, expirySeconds, sleepMsBetweenRequests });
6
7
  this.logger = logger;
@@ -32,10 +33,19 @@ export class PriceGetter extends CoinGeckoTokenPriceGetter {
32
33
  return this.getCoingeckoPrice(coinGeckoId);
33
34
  }
34
35
  async getCoingeckoPrice(coingeckoId) {
35
- const prices = await this.getTokenPriceByIds([coingeckoId]);
36
- if (!prices)
37
- return undefined;
38
- return prices[0];
36
+ const pending = this.pendingPrices.get(coingeckoId);
37
+ if (pending)
38
+ return pending;
39
+ // Multiple route tokens can share an ID. Share only the active lookup;
40
+ // the SDK remains responsible for cache freshness and failed-price handling.
41
+ const request = this.getTokenPriceByIds([coingeckoId]).then((prices) => prices?.[0]);
42
+ this.pendingPrices.set(coingeckoId, request);
43
+ try {
44
+ return await request;
45
+ }
46
+ finally {
47
+ this.pendingPrices.delete(coingeckoId);
48
+ }
39
49
  }
40
50
  }
41
51
  //# sourceMappingURL=PriceGetter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PriceGetter.js","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,yBAAyB,GAE1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,WAAY,SAAQ,yBAAyB;IACvC,MAAM,CAAS;IAEhC,YAAoB,EAClB,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACb,sBAAsB,GAOvB;QACC,KAAK,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,aAAsC,EACtC,MAAc,EACd,eAAwB,EACxB,aAAsB,EACtB,sBAA+B;QAE/B,OAAO,IAAI,WAAW,CAAC;YACrB,aAAa;YACb,MAAM;YACN,MAAM,EAAE,eAAe;YACvB,aAAa;YACb,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,8BAA8B;IAC9B,KAAK,CAAC,gBAAgB,CAAC,KAAY;QACjC,2DAA2D;QAC3D,gFAAgF;QAChF,gEAAgE;QAChE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;gBACE,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,YAAY,EAAE,KAAK,CAAC,cAAc;aACnC,EACD,gCAAgC,CACjC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"PriceGetter.js","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,yBAAyB,GAE1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,WAAY,SAAQ,yBAAyB;IACvC,MAAM,CAAS;IACf,aAAa,GAAG,IAAI,GAAG,EAGrC,CAAC;IAEJ,YAAoB,EAClB,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACb,sBAAsB,GAOvB;QACC,KAAK,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,aAAsC,EACtC,MAAc,EACd,eAAwB,EACxB,aAAsB,EACtB,sBAA+B;QAE/B,OAAO,IAAI,WAAW,CAAC;YACrB,aAAa;YACb,MAAM;YACN,MAAM,EAAE,eAAe;YACvB,aAAa;YACb,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,8BAA8B;IAC9B,KAAK,CAAC,gBAAgB,CAAC,KAAY;QACjC,2DAA2D;QAC3D,gFAAgF;QAChF,gEAAgE;QAChE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;gBACE,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,YAAY,EAAE,KAAK,CAAC,cAAc;aACnC,EACD,gCAAgC,CACjC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,uEAAuE;QACvE,6EAA6E;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CACzD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CACxB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PriceGetter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriceGetter.test.d.ts","sourceRoot":"","sources":["../../src/metrics/PriceGetter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import { expect } from 'chai';
2
+ import { pino } from 'pino';
3
+ import Sinon from 'sinon';
4
+ import { CoinGeckoTokenPriceGetter } from '@humanode-hyperlane/sdk';
5
+ import { PriceGetter } from './PriceGetter.js';
6
+ const logger = pino({ level: 'silent' });
7
+ const response = (price = 1) => new Response(JSON.stringify({
8
+ 'usd-coin': { usd: price },
9
+ tether: { usd: price },
10
+ }));
11
+ describe('PriceGetter concurrent lookups', () => {
12
+ afterEach(() => Sinon.restore());
13
+ it('reduces twelve concurrent same-ID HTTP requests to one', async () => {
14
+ const fetch = Sinon.stub(globalThis, 'fetch').callsFake(async () => response());
15
+ const baseline = new CoinGeckoTokenPriceGetter({
16
+ chainMetadata: {},
17
+ sleepMsBetweenRequests: 0,
18
+ });
19
+ const before = await Promise.all(Array.from({ length: 12 }, () => baseline.getTokenPriceByIds(['usd-coin'])));
20
+ expect(fetch.callCount).to.equal(12);
21
+ fetch.resetHistory();
22
+ const getter = PriceGetter.create({}, logger, undefined, undefined, 0);
23
+ const after = await Promise.all(Array.from({ length: 12 }, () => getter.getCoingeckoPrice('usd-coin')));
24
+ expect(fetch.callCount).to.equal(1);
25
+ expect(after).to.deep.equal(before.map((prices) => prices?.[0]));
26
+ });
27
+ it('looks up distinct IDs independently', async () => {
28
+ const fetch = Sinon.stub(globalThis, 'fetch').callsFake(async () => response());
29
+ const getter = PriceGetter.create({}, logger, undefined, undefined, 0);
30
+ expect(await Promise.all([
31
+ getter.getCoingeckoPrice('usd-coin'),
32
+ getter.getCoingeckoPrice('tether'),
33
+ getter.getCoingeckoPrice('usd-coin'),
34
+ getter.getCoingeckoPrice('tether'),
35
+ ])).to.deep.equal([1, 1, 1, 1]);
36
+ expect(fetch.callCount).to.equal(2);
37
+ });
38
+ it('keeps the SDK cache behavior after a successful lookup', async () => {
39
+ const fetch = Sinon.stub(globalThis, 'fetch').callsFake(async () => response());
40
+ const getter = PriceGetter.create({}, logger, undefined, 60, 0);
41
+ expect(await getter.getCoingeckoPrice('usd-coin')).to.equal(1);
42
+ expect(await getter.getCoingeckoPrice('usd-coin')).to.equal(1);
43
+ expect(fetch.callCount).to.equal(1);
44
+ });
45
+ it('does not retain settled results beyond the SDK cache lifetime', async () => {
46
+ const fetch = Sinon.stub(globalThis, 'fetch');
47
+ fetch.onFirstCall().resolves(response(1));
48
+ fetch.onSecondCall().resolves(response(2));
49
+ const getter = PriceGetter.create({}, logger, undefined, 0, 0);
50
+ expect(await getter.getCoingeckoPrice('usd-coin')).to.equal(1);
51
+ expect(await getter.getCoingeckoPrice('usd-coin')).to.equal(2);
52
+ expect(fetch.callCount).to.equal(2);
53
+ });
54
+ it('retries after an unavailable price instead of retaining undefined', async () => {
55
+ const fetch = Sinon.stub(globalThis, 'fetch');
56
+ fetch.onFirstCall().resolves(new Response('{}'));
57
+ fetch.onSecondCall().resolves(response());
58
+ const getter = PriceGetter.create({}, logger, undefined, undefined, 0);
59
+ expect(await Promise.all([
60
+ getter.getCoingeckoPrice('usd-coin'),
61
+ getter.getCoingeckoPrice('usd-coin'),
62
+ ])).to.deep.equal([undefined, undefined]);
63
+ expect(await getter.getCoingeckoPrice('usd-coin')).to.equal(1);
64
+ expect(fetch.callCount).to.equal(2);
65
+ });
66
+ it('propagates rejected lookups to all callers and allows a retry', async () => {
67
+ const getter = PriceGetter.create({}, logger);
68
+ const lookup = Sinon.stub(getter, 'getTokenPriceByIds');
69
+ const error = new Error('price lookup rejected');
70
+ lookup.onFirstCall().rejects(error);
71
+ lookup.onSecondCall().resolves([2]);
72
+ const results = await Promise.allSettled([
73
+ getter.getCoingeckoPrice('usd-coin'),
74
+ getter.getCoingeckoPrice('usd-coin'),
75
+ ]);
76
+ expect(results).to.deep.equal([
77
+ { status: 'rejected', reason: error },
78
+ { status: 'rejected', reason: error },
79
+ ]);
80
+ expect(await getter.getCoingeckoPrice('usd-coin')).to.equal(2);
81
+ expect(lookup.callCount).to.equal(2);
82
+ });
83
+ });
84
+ //# sourceMappingURL=PriceGetter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriceGetter.test.js","sourceRoot":"","sources":["../../src/metrics/PriceGetter.test.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,11 @@ import { type NativeWalletBalance, type WarpRouteBalance, type XERC20Limit } fro
4
4
  import { type ChainName, type Token, type WarpCore } from '@humanode-hyperlane/sdk';
5
5
  import { type Address } from '@humanode-hyperlane/utils';
6
6
  export declare const metricsRegister: Registry;
7
- export declare const rebalancerExecutionTotal: Counter<"warp_route_id" | "succeeded">;
8
- export declare const rebalancerExecutionAmount: Counter<"destination" | "origin" | "warp_route_id" | "token">;
7
+ export declare const rebalancerExecutionTotal: Counter<"succeeded" | "warp_route_id">;
8
+ export declare const rebalancerExecutionAmount: Counter<"destination" | "origin" | "token" | "warp_route_id">;
9
9
  export declare const rebalancerPollingErrorsTotal: Counter<"warp_route_id">;
10
- export declare const rebalancerIntentsCreatedTotal: Counter<"strategy" | "destination" | "origin" | "warp_route_id">;
11
- export declare const rebalancerActionsCreatedTotal: Counter<"destination" | "origin" | "warp_route_id" | "succeeded">;
10
+ export declare const rebalancerIntentsCreatedTotal: Counter<"destination" | "origin" | "strategy" | "warp_route_id">;
11
+ export declare const rebalancerActionsCreatedTotal: Counter<"destination" | "origin" | "succeeded" | "warp_route_id">;
12
12
  /**
13
13
  * Updates token balance metrics for a warp route token.
14
14
  */
@@ -29,6 +29,7 @@ export declare class Monitor implements IMonitor {
29
29
  */
30
30
  constructor(checkFrequency: number, warpCore: WarpCore, logger: Logger, inventoryConfig?: InventoryMonitorConfig | undefined);
31
31
  private computeConfirmedBlockTags;
32
+ private fetchTokenInfo;
32
33
  on(eventName: MonitorEventType.TokenInfo, fn: (event: MonitorEvent) => void | Promise<void>): this;
33
34
  on(eventName: MonitorEventType.Error, fn: (event: Error) => void): this;
34
35
  on(eventName: MonitorEventType.Start, fn: () => void): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAS,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IAYpC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAdnC,OAAO,CAAC,gBAAgB,CAAC,CAAgD;IACzE,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;gBAEgB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,sBAAsB,YAAA;YAG7C,yBAAyB;IAgBvC,EAAE,CACA,SAAS,EAAE,gBAAgB,CAAC,SAAS,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI;IACP,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACvE,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAkBrD,KAAK;YA+GG,qBAAqB;YAmDrB,sBAAsB;IAsDpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBtB"}
1
+ {"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EAKb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AAMnC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IAYpC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAdnC,OAAO,CAAC,gBAAgB,CAAC,CAAgD;IACzE,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACH,YACmB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,sBAAsB,YAAA,EACvD;YAEU,yBAAyB;YAmBzB,cAAc;IAuB5B,EAAE,CACA,SAAS,EAAE,gBAAgB,CAAC,SAAS,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI,CAAC;IACR,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAkBtD,KAAK,kBAsGV;YAEa,qBAAqB;YAyCrB,sBAAsB;IA6DpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBpB;CACF"}
@@ -1,6 +1,8 @@
1
- import { sleep } from '@humanode-hyperlane/utils';
1
+ import { ProtocolType, assert, concurrentMap, fromWei, sleep, } from '@humanode-hyperlane/utils';
2
2
  import { MonitorEventType, MonitorPollingError, MonitorStartError, } from '../interfaces/IMonitor.js';
3
3
  import { getConfirmedBlockTag } from '../utils/blockTag.js';
4
+ // Bound each read group so route size cannot create unlimited RPC work.
5
+ const MONITOR_READ_CONCURRENCY = 8;
4
6
  /**
5
7
  * Simple monitor implementation that polls warp route collateral balances and emits them as MonitorEvent.
6
8
  * Awaits the TokenInfo handler before starting the next cycle to prevent race conditions.
@@ -28,11 +30,25 @@ export class Monitor {
28
30
  async computeConfirmedBlockTags() {
29
31
  const blockTags = {};
30
32
  const chains = new Set(this.warpCore.tokens.map((t) => t.chainName));
31
- for (const chain of chains) {
33
+ await concurrentMap(MONITOR_READ_CONCURRENCY, [...chains], async (chain) => {
32
34
  blockTags[chain] = await getConfirmedBlockTag(this.warpCore.multiProvider, chain, this.logger);
33
- }
35
+ });
34
36
  return blockTags;
35
37
  }
38
+ async fetchTokenInfo() {
39
+ const confirmedBlockTags = await this.computeConfirmedBlockTags();
40
+ const tokensInfo = await concurrentMap(MONITOR_READ_CONCURRENCY, this.warpCore.tokens, async (token) => {
41
+ this.logger.debug({
42
+ chain: token.chainName,
43
+ tokenSymbol: token.symbol,
44
+ tokenAddress: token.addressOrDenom,
45
+ }, 'Checking token');
46
+ const blockTag = confirmedBlockTags[token.chainName];
47
+ const bridgedSupply = await this.getTokenBridgedSupply(token, blockTag);
48
+ return { token, bridgedSupply };
49
+ });
50
+ return { tokensInfo, confirmedBlockTags };
51
+ }
36
52
  on(eventName, fn) {
37
53
  switch (eventName) {
38
54
  case MonitorEventType.TokenInfo:
@@ -61,34 +77,34 @@ export class Monitor {
61
77
  const cycleStart = Date.now();
62
78
  try {
63
79
  this.logger.debug('Polling cycle started');
64
- const confirmedBlockTags = await this.computeConfirmedBlockTags();
65
- const event = {
66
- tokensInfo: [],
67
- confirmedBlockTags,
68
- };
69
- for (const token of this.warpCore.tokens) {
70
- this.logger.debug({
71
- chain: token.chainName,
72
- tokenSymbol: token.symbol,
73
- tokenAddress: token.addressOrDenom,
74
- }, 'Checking token');
75
- const blockTag = confirmedBlockTags[token.chainName];
76
- const bridgedSupply = await this.getTokenBridgedSupply(token, blockTag);
77
- event.tokensInfo.push({
78
- token,
79
- bridgedSupply,
80
- });
81
- }
82
- const inventoryBalances = await this.fetchInventoryBalances();
80
+ // Drain both groups on error before a retry can start another cycle.
81
+ const [tokenRead, inventoryRead] = await Promise.allSettled([
82
+ this.fetchTokenInfo(),
83
+ this.fetchInventoryBalances(),
84
+ ]);
85
+ if (tokenRead.status === 'rejected')
86
+ throw tokenRead.reason;
87
+ if (inventoryRead.status === 'rejected')
88
+ throw inventoryRead.reason;
89
+ const event = tokenRead.value;
90
+ const inventoryBalances = inventoryRead.value;
83
91
  if (Object.keys(inventoryBalances).length > 0) {
84
92
  event.inventoryBalances = inventoryBalances;
93
+ const tokensByChain = new Map(this.warpCore.tokens.map((token) => [token.chainName, token]));
94
+ // CAST: inventoryBalances keys come from configured monitor chains,
95
+ // but Object.entries widens them to string.
96
+ const inventoryBalanceEntries = Object.entries(inventoryBalances);
85
97
  this.logger.info({
86
98
  chainsMonitored: Object.keys(inventoryBalances).length,
87
- balances: Object.entries(inventoryBalances).map(([chain, balance]) => ({
88
- chain,
89
- balance: balance.toString(),
90
- balanceEth: (Number(balance) / 1e18).toFixed(6),
91
- })),
99
+ balances: inventoryBalanceEntries.map(([chain, balance]) => {
100
+ const token = tokensByChain.get(chain);
101
+ return {
102
+ chain,
103
+ tokenSymbol: token?.symbol,
104
+ balance: balance.toString(),
105
+ balanceFormatted: fromWei(balance.toString(), token?.decimals),
106
+ };
107
+ }),
92
108
  }, 'Inventory balances fetched');
93
109
  }
94
110
  if (this.tokenInfoHandler) {
@@ -132,20 +148,10 @@ export class Monitor {
132
148
  }, 'Cannot get bridged balance for a non-Hyperlane token');
133
149
  return;
134
150
  }
151
+ assert(token.protocol !== ProtocolType.Ethereum || blockTag !== undefined, `Confirmed block unavailable for ${token.chainName}`);
135
152
  const adapter = token.getHypAdapter(this.warpCore.multiProvider);
136
- let bridgedSupply;
137
- try {
138
- bridgedSupply = await adapter.getBridgedSupply({ blockTag });
139
- this.logger.debug({ chain: token.chainName, blockTag }, 'Queried confirmed balance');
140
- }
141
- catch (error) {
142
- this.logger.warn({
143
- chain: token.chainName,
144
- blockTag,
145
- error: error.message,
146
- }, 'Historical block query failed, falling back to latest');
147
- bridgedSupply = await adapter.getBridgedSupply();
148
- }
153
+ const bridgedSupply = await adapter.getBridgedSupply({ blockTag });
154
+ this.logger.debug({ chain: token.chainName, blockTag }, 'Queried confirmed balance');
149
155
  if (bridgedSupply === undefined) {
150
156
  this.logger.warn({
151
157
  chain: token.chainName,
@@ -156,17 +162,18 @@ export class Monitor {
156
162
  return bridgedSupply;
157
163
  }
158
164
  async fetchInventoryBalances() {
159
- if (!this.inventoryConfig)
165
+ const inventoryConfig = this.inventoryConfig;
166
+ if (!inventoryConfig)
160
167
  return {};
161
168
  const balances = {};
162
- const readPromises = this.inventoryConfig.chains.map(async (chainName) => {
169
+ const results = await concurrentMap(MONITOR_READ_CONCURRENCY, inventoryConfig.chains, async (chainName) => {
163
170
  const token = this.warpCore.tokens.find((t) => t.chainName === chainName);
164
171
  if (!token) {
165
172
  this.logger.warn({ chain: chainName }, 'No token found for inventory chain');
166
173
  return { chainName, balance: 0n };
167
174
  }
168
175
  try {
169
- const address = this.inventoryConfig.inventoryAddresses[token.protocol];
176
+ const address = inventoryConfig.inventoryAddresses[token.protocol];
170
177
  if (!address) {
171
178
  this.logger.warn({ chain: chainName, protocol: token.protocol }, 'No inventory address for chain protocol, skipping');
172
179
  return { chainName, balance: 0n };
@@ -181,11 +188,13 @@ export class Monitor {
181
188
  return { chainName, balance };
182
189
  }
183
190
  catch (error) {
184
- this.logger.error({ chain: chainName, error: error.message }, 'Failed to read inventory balance');
185
- return { chainName, balance: 0n };
191
+ this.logger.error({
192
+ chain: chainName,
193
+ error: error instanceof Error ? error.message : String(error),
194
+ }, 'Failed to read inventory balance');
195
+ throw error;
186
196
  }
187
197
  });
188
- const results = await Promise.all(readPromises);
189
198
  for (const { chainName, balance } of results) {
190
199
  balances[chainName] = balance;
191
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Monitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Monitor.test.d.ts","sourceRoot":"","sources":["../../src/monitor/Monitor.test.ts"],"names":[],"mappings":""}