@humanode-hyperlane/rebalancer 0.0.0-stage → 27.2.2

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 (439) hide show
  1. package/LICENSE.md +193 -0
  2. package/README.md +297 -2
  3. package/dist/bridges/LiFiBridge.d.ts +93 -0
  4. package/dist/bridges/LiFiBridge.d.ts.map +1 -0
  5. package/dist/bridges/LiFiBridge.js +527 -0
  6. package/dist/bridges/LiFiBridge.js.map +1 -0
  7. package/dist/bridges/LiFiBridge.test.d.ts +2 -0
  8. package/dist/bridges/LiFiBridge.test.d.ts.map +1 -0
  9. package/dist/bridges/LiFiBridge.test.js +504 -0
  10. package/dist/bridges/LiFiBridge.test.js.map +1 -0
  11. package/dist/config/RebalancerConfig.d.ts +20 -0
  12. package/dist/config/RebalancerConfig.d.ts.map +1 -0
  13. package/dist/config/RebalancerConfig.js +35 -0
  14. package/dist/config/RebalancerConfig.js.map +1 -0
  15. package/dist/config/RebalancerConfig.test.d.ts +2 -0
  16. package/dist/config/RebalancerConfig.test.d.ts.map +1 -0
  17. package/dist/config/RebalancerConfig.test.js +798 -0
  18. package/dist/config/RebalancerConfig.test.js.map +1 -0
  19. package/dist/config/types.d.ts +3008 -0
  20. package/dist/config/types.d.ts.map +1 -0
  21. package/dist/config/types.js +451 -0
  22. package/dist/config/types.js.map +1 -0
  23. package/dist/core/InventoryRebalancer.d.ts +201 -0
  24. package/dist/core/InventoryRebalancer.d.ts.map +1 -0
  25. package/dist/core/InventoryRebalancer.js +994 -0
  26. package/dist/core/InventoryRebalancer.js.map +1 -0
  27. package/dist/core/InventoryRebalancer.test.d.ts +2 -0
  28. package/dist/core/InventoryRebalancer.test.d.ts.map +1 -0
  29. package/dist/core/InventoryRebalancer.test.js +1511 -0
  30. package/dist/core/InventoryRebalancer.test.js.map +1 -0
  31. package/dist/core/Rebalancer.d.ts +37 -0
  32. package/dist/core/Rebalancer.d.ts.map +1 -0
  33. package/dist/core/Rebalancer.js +433 -0
  34. package/dist/core/Rebalancer.js.map +1 -0
  35. package/dist/core/Rebalancer.test.d.ts +2 -0
  36. package/dist/core/Rebalancer.test.d.ts.map +1 -0
  37. package/dist/core/Rebalancer.test.js +424 -0
  38. package/dist/core/Rebalancer.test.js.map +1 -0
  39. package/dist/core/RebalancerOrchestrator.d.ts +56 -0
  40. package/dist/core/RebalancerOrchestrator.d.ts.map +1 -0
  41. package/dist/core/RebalancerOrchestrator.js +154 -0
  42. package/dist/core/RebalancerOrchestrator.js.map +1 -0
  43. package/dist/core/RebalancerOrchestrator.test.d.ts +2 -0
  44. package/dist/core/RebalancerOrchestrator.test.d.ts.map +1 -0
  45. package/dist/core/RebalancerOrchestrator.test.js +721 -0
  46. package/dist/core/RebalancerOrchestrator.test.js.map +1 -0
  47. package/dist/core/RebalancerService.d.ts +127 -0
  48. package/dist/core/RebalancerService.d.ts.map +1 -0
  49. package/dist/core/RebalancerService.js +270 -0
  50. package/dist/core/RebalancerService.js.map +1 -0
  51. package/dist/core/RebalancerService.test.d.ts +2 -0
  52. package/dist/core/RebalancerService.test.d.ts.map +1 -0
  53. package/dist/core/RebalancerService.test.js +777 -0
  54. package/dist/core/RebalancerService.test.js.map +1 -0
  55. package/dist/e2e/collateral-deficit.e2e-test.d.ts +2 -0
  56. package/dist/e2e/collateral-deficit.e2e-test.d.ts.map +1 -0
  57. package/dist/e2e/collateral-deficit.e2e-test.js +227 -0
  58. package/dist/e2e/collateral-deficit.e2e-test.js.map +1 -0
  59. package/dist/e2e/composite.e2e-test.d.ts +2 -0
  60. package/dist/e2e/composite.e2e-test.d.ts.map +1 -0
  61. package/dist/e2e/composite.e2e-test.js +666 -0
  62. package/dist/e2e/composite.e2e-test.js.map +1 -0
  63. package/dist/e2e/fixtures/routes.d.ts +89 -0
  64. package/dist/e2e/fixtures/routes.d.ts.map +1 -0
  65. package/dist/e2e/fixtures/routes.js +420 -0
  66. package/dist/e2e/fixtures/routes.js.map +1 -0
  67. package/dist/e2e/harness/BaseLocalDeploymentManager.d.ts +38 -0
  68. package/dist/e2e/harness/BaseLocalDeploymentManager.d.ts.map +1 -0
  69. package/dist/e2e/harness/BaseLocalDeploymentManager.js +144 -0
  70. package/dist/e2e/harness/BaseLocalDeploymentManager.js.map +1 -0
  71. package/dist/e2e/harness/BridgeSetup.d.ts +11 -0
  72. package/dist/e2e/harness/BridgeSetup.d.ts.map +1 -0
  73. package/dist/e2e/harness/BridgeSetup.js +50 -0
  74. package/dist/e2e/harness/BridgeSetup.js.map +1 -0
  75. package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.d.ts +13 -0
  76. package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.d.ts.map +1 -0
  77. package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.js +105 -0
  78. package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.js.map +1 -0
  79. package/dist/e2e/harness/Erc20LocalDeploymentManager.d.ts +11 -0
  80. package/dist/e2e/harness/Erc20LocalDeploymentManager.d.ts.map +1 -0
  81. package/dist/e2e/harness/Erc20LocalDeploymentManager.js +105 -0
  82. package/dist/e2e/harness/Erc20LocalDeploymentManager.js.map +1 -0
  83. package/dist/e2e/harness/ForkIndexer.d.ts +23 -0
  84. package/dist/e2e/harness/ForkIndexer.d.ts.map +1 -0
  85. package/dist/e2e/harness/ForkIndexer.js +127 -0
  86. package/dist/e2e/harness/ForkIndexer.js.map +1 -0
  87. package/dist/e2e/harness/ForkIndexer.test.d.ts +2 -0
  88. package/dist/e2e/harness/ForkIndexer.test.d.ts.map +1 -0
  89. package/dist/e2e/harness/ForkIndexer.test.js +257 -0
  90. package/dist/e2e/harness/ForkIndexer.test.js.map +1 -0
  91. package/dist/e2e/harness/MixedLocalDeploymentManager.d.ts +21 -0
  92. package/dist/e2e/harness/MixedLocalDeploymentManager.d.ts.map +1 -0
  93. package/dist/e2e/harness/MixedLocalDeploymentManager.js +115 -0
  94. package/dist/e2e/harness/MixedLocalDeploymentManager.js.map +1 -0
  95. package/dist/e2e/harness/MockExplorerClient.d.ts +23 -0
  96. package/dist/e2e/harness/MockExplorerClient.d.ts.map +1 -0
  97. package/dist/e2e/harness/MockExplorerClient.js +57 -0
  98. package/dist/e2e/harness/MockExplorerClient.js.map +1 -0
  99. package/dist/e2e/harness/MockExternalBridge.d.ts +32 -0
  100. package/dist/e2e/harness/MockExternalBridge.d.ts.map +1 -0
  101. package/dist/e2e/harness/MockExternalBridge.js +247 -0
  102. package/dist/e2e/harness/MockExternalBridge.js.map +1 -0
  103. package/dist/e2e/harness/NativeLocalDeploymentManager.d.ts +13 -0
  104. package/dist/e2e/harness/NativeLocalDeploymentManager.d.ts.map +1 -0
  105. package/dist/e2e/harness/NativeLocalDeploymentManager.js +91 -0
  106. package/dist/e2e/harness/NativeLocalDeploymentManager.js.map +1 -0
  107. package/dist/e2e/harness/SnapshotHelper.d.ts +13 -0
  108. package/dist/e2e/harness/SnapshotHelper.d.ts.map +1 -0
  109. package/dist/e2e/harness/SnapshotHelper.js +36 -0
  110. package/dist/e2e/harness/SnapshotHelper.js.map +1 -0
  111. package/dist/e2e/harness/TestHelpers.d.ts +25 -0
  112. package/dist/e2e/harness/TestHelpers.d.ts.map +1 -0
  113. package/dist/e2e/harness/TestHelpers.js +103 -0
  114. package/dist/e2e/harness/TestHelpers.js.map +1 -0
  115. package/dist/e2e/harness/TestRebalancer.d.ts +85 -0
  116. package/dist/e2e/harness/TestRebalancer.d.ts.map +1 -0
  117. package/dist/e2e/harness/TestRebalancer.js +427 -0
  118. package/dist/e2e/harness/TestRebalancer.js.map +1 -0
  119. package/dist/e2e/harness/TransferHelper.d.ts +34 -0
  120. package/dist/e2e/harness/TransferHelper.d.ts.map +1 -0
  121. package/dist/e2e/harness/TransferHelper.js +93 -0
  122. package/dist/e2e/harness/TransferHelper.js.map +1 -0
  123. package/dist/e2e/inventory-erc20-minAmount.e2e-test.d.ts +2 -0
  124. package/dist/e2e/inventory-erc20-minAmount.e2e-test.d.ts.map +1 -0
  125. package/dist/e2e/inventory-erc20-minAmount.e2e-test.js +411 -0
  126. package/dist/e2e/inventory-erc20-minAmount.e2e-test.js.map +1 -0
  127. package/dist/e2e/inventory-erc20-weighted.e2e-test.d.ts +2 -0
  128. package/dist/e2e/inventory-erc20-weighted.e2e-test.d.ts.map +1 -0
  129. package/dist/e2e/inventory-erc20-weighted.e2e-test.js +408 -0
  130. package/dist/e2e/inventory-erc20-weighted.e2e-test.js.map +1 -0
  131. package/dist/e2e/inventory-minAmount.e2e-test.d.ts +2 -0
  132. package/dist/e2e/inventory-minAmount.e2e-test.d.ts.map +1 -0
  133. package/dist/e2e/inventory-minAmount.e2e-test.js +411 -0
  134. package/dist/e2e/inventory-minAmount.e2e-test.js.map +1 -0
  135. package/dist/e2e/inventory-weighted.e2e-test.d.ts +2 -0
  136. package/dist/e2e/inventory-weighted.e2e-test.d.ts.map +1 -0
  137. package/dist/e2e/inventory-weighted.e2e-test.js +409 -0
  138. package/dist/e2e/inventory-weighted.e2e-test.js.map +1 -0
  139. package/dist/e2e/minAmount.e2e-test.d.ts +2 -0
  140. package/dist/e2e/minAmount.e2e-test.d.ts.map +1 -0
  141. package/dist/e2e/minAmount.e2e-test.js +203 -0
  142. package/dist/e2e/minAmount.e2e-test.js.map +1 -0
  143. package/dist/e2e/mixed-weighted.e2e-test.d.ts +2 -0
  144. package/dist/e2e/mixed-weighted.e2e-test.d.ts.map +1 -0
  145. package/dist/e2e/mixed-weighted.e2e-test.js +189 -0
  146. package/dist/e2e/mixed-weighted.e2e-test.js.map +1 -0
  147. package/dist/e2e/weighted.e2e-test.d.ts +2 -0
  148. package/dist/e2e/weighted.e2e-test.d.ts.map +1 -0
  149. package/dist/e2e/weighted.e2e-test.js +198 -0
  150. package/dist/e2e/weighted.e2e-test.js.map +1 -0
  151. package/dist/factories/RebalancerContextFactory.d.ts +89 -0
  152. package/dist/factories/RebalancerContextFactory.d.ts.map +1 -0
  153. package/dist/factories/RebalancerContextFactory.js +420 -0
  154. package/dist/factories/RebalancerContextFactory.js.map +1 -0
  155. package/dist/factories/RebalancerContextFactory.test.d.ts +2 -0
  156. package/dist/factories/RebalancerContextFactory.test.d.ts.map +1 -0
  157. package/dist/factories/RebalancerContextFactory.test.js +270 -0
  158. package/dist/factories/RebalancerContextFactory.test.js.map +1 -0
  159. package/dist/index.d.ts +37 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +37 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/interfaces/IExternalBridge.d.ts +103 -0
  164. package/dist/interfaces/IExternalBridge.d.ts.map +1 -0
  165. package/dist/interfaces/IExternalBridge.js +2 -0
  166. package/dist/interfaces/IExternalBridge.js.map +1 -0
  167. package/dist/interfaces/IMetrics.d.ts +5 -0
  168. package/dist/interfaces/IMetrics.d.ts.map +1 -0
  169. package/dist/interfaces/IMetrics.js +2 -0
  170. package/dist/interfaces/IMetrics.js.map +1 -0
  171. package/dist/interfaces/IMonitor.d.ts +50 -0
  172. package/dist/interfaces/IMonitor.d.ts.map +1 -0
  173. package/dist/interfaces/IMonitor.js +14 -0
  174. package/dist/interfaces/IMonitor.js.map +1 -0
  175. package/dist/interfaces/IRebalancer.d.ts +31 -0
  176. package/dist/interfaces/IRebalancer.d.ts.map +1 -0
  177. package/dist/interfaces/IRebalancer.js +2 -0
  178. package/dist/interfaces/IRebalancer.js.map +1 -0
  179. package/dist/interfaces/IStrategy.d.ts +60 -0
  180. package/dist/interfaces/IStrategy.d.ts.map +1 -0
  181. package/dist/interfaces/IStrategy.js +13 -0
  182. package/dist/interfaces/IStrategy.js.map +1 -0
  183. package/dist/metrics/Metrics.d.ts +25 -0
  184. package/dist/metrics/Metrics.d.ts.map +1 -0
  185. package/dist/metrics/Metrics.js +164 -0
  186. package/dist/metrics/Metrics.js.map +1 -0
  187. package/dist/metrics/PriceGetter.d.ts +10 -0
  188. package/dist/metrics/PriceGetter.d.ts.map +1 -0
  189. package/dist/metrics/PriceGetter.js +41 -0
  190. package/dist/metrics/PriceGetter.js.map +1 -0
  191. package/dist/metrics/scripts/metrics.d.ts +28 -0
  192. package/dist/metrics/scripts/metrics.d.ts.map +1 -0
  193. package/dist/metrics/scripts/metrics.js +61 -0
  194. package/dist/metrics/scripts/metrics.js.map +1 -0
  195. package/dist/monitor/Monitor.d.ts +40 -0
  196. package/dist/monitor/Monitor.d.ts.map +1 -0
  197. package/dist/monitor/Monitor.js +211 -0
  198. package/dist/monitor/Monitor.js.map +1 -0
  199. package/dist/service.d.ts +3 -0
  200. package/dist/service.d.ts.map +1 -0
  201. package/dist/service.js +205 -0
  202. package/dist/service.js.map +1 -0
  203. package/dist/strategy/BaseStrategy.d.ts +86 -0
  204. package/dist/strategy/BaseStrategy.d.ts.map +1 -0
  205. package/dist/strategy/BaseStrategy.js +342 -0
  206. package/dist/strategy/BaseStrategy.js.map +1 -0
  207. package/dist/strategy/CollateralDeficitStrategy.d.ts +65 -0
  208. package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -0
  209. package/dist/strategy/CollateralDeficitStrategy.js +253 -0
  210. package/dist/strategy/CollateralDeficitStrategy.js.map +1 -0
  211. package/dist/strategy/CollateralDeficitStrategy.test.d.ts +2 -0
  212. package/dist/strategy/CollateralDeficitStrategy.test.d.ts.map +1 -0
  213. package/dist/strategy/CollateralDeficitStrategy.test.js +497 -0
  214. package/dist/strategy/CollateralDeficitStrategy.test.js.map +1 -0
  215. package/dist/strategy/CompositeStrategy.d.ts +18 -0
  216. package/dist/strategy/CompositeStrategy.d.ts.map +1 -0
  217. package/dist/strategy/CompositeStrategy.js +63 -0
  218. package/dist/strategy/CompositeStrategy.js.map +1 -0
  219. package/dist/strategy/CompositeStrategy.test.d.ts +2 -0
  220. package/dist/strategy/CompositeStrategy.test.d.ts.map +1 -0
  221. package/dist/strategy/CompositeStrategy.test.js +278 -0
  222. package/dist/strategy/CompositeStrategy.test.js.map +1 -0
  223. package/dist/strategy/MinAmountStrategy.d.ts +35 -0
  224. package/dist/strategy/MinAmountStrategy.d.ts.map +1 -0
  225. package/dist/strategy/MinAmountStrategy.js +112 -0
  226. package/dist/strategy/MinAmountStrategy.js.map +1 -0
  227. package/dist/strategy/MinAmountStrategy.test.d.ts +2 -0
  228. package/dist/strategy/MinAmountStrategy.test.d.ts.map +1 -0
  229. package/dist/strategy/MinAmountStrategy.test.js +547 -0
  230. package/dist/strategy/MinAmountStrategy.test.js.map +1 -0
  231. package/dist/strategy/StrategyFactory.d.ts +27 -0
  232. package/dist/strategy/StrategyFactory.d.ts.map +1 -0
  233. package/dist/strategy/StrategyFactory.js +79 -0
  234. package/dist/strategy/StrategyFactory.js.map +1 -0
  235. package/dist/strategy/StrategyFactory.test.d.ts +2 -0
  236. package/dist/strategy/StrategyFactory.test.d.ts.map +1 -0
  237. package/dist/strategy/StrategyFactory.test.js +81 -0
  238. package/dist/strategy/StrategyFactory.test.js.map +1 -0
  239. package/dist/strategy/WeightedStrategy.d.ts +32 -0
  240. package/dist/strategy/WeightedStrategy.d.ts.map +1 -0
  241. package/dist/strategy/WeightedStrategy.js +73 -0
  242. package/dist/strategy/WeightedStrategy.js.map +1 -0
  243. package/dist/strategy/WeightedStrategy.test.d.ts +2 -0
  244. package/dist/strategy/WeightedStrategy.test.d.ts.map +1 -0
  245. package/dist/strategy/WeightedStrategy.test.js +403 -0
  246. package/dist/strategy/WeightedStrategy.test.js.map +1 -0
  247. package/dist/strategy/index.d.ts +7 -0
  248. package/dist/strategy/index.d.ts.map +1 -0
  249. package/dist/strategy/index.js +7 -0
  250. package/dist/strategy/index.js.map +1 -0
  251. package/dist/test/helpers.d.ts +99 -0
  252. package/dist/test/helpers.d.ts.map +1 -0
  253. package/dist/test/helpers.js +311 -0
  254. package/dist/test/helpers.js.map +1 -0
  255. package/dist/test/lifiMocks.d.ts +52 -0
  256. package/dist/test/lifiMocks.d.ts.map +1 -0
  257. package/dist/test/lifiMocks.js +160 -0
  258. package/dist/test/lifiMocks.js.map +1 -0
  259. package/dist/tracking/ActionTracker.d.ts +90 -0
  260. package/dist/tracking/ActionTracker.d.ts.map +1 -0
  261. package/dist/tracking/ActionTracker.js +678 -0
  262. package/dist/tracking/ActionTracker.js.map +1 -0
  263. package/dist/tracking/ActionTracker.test.d.ts +2 -0
  264. package/dist/tracking/ActionTracker.test.d.ts.map +1 -0
  265. package/dist/tracking/ActionTracker.test.js +1351 -0
  266. package/dist/tracking/ActionTracker.test.js.map +1 -0
  267. package/dist/tracking/IActionTracker.d.ts +157 -0
  268. package/dist/tracking/IActionTracker.d.ts.map +1 -0
  269. package/dist/tracking/IActionTracker.js +2 -0
  270. package/dist/tracking/IActionTracker.js.map +1 -0
  271. package/dist/tracking/InflightContextAdapter.d.ts +18 -0
  272. package/dist/tracking/InflightContextAdapter.d.ts.map +1 -0
  273. package/dist/tracking/InflightContextAdapter.js +52 -0
  274. package/dist/tracking/InflightContextAdapter.js.map +1 -0
  275. package/dist/tracking/InflightContextAdapter.test.d.ts +2 -0
  276. package/dist/tracking/InflightContextAdapter.test.d.ts.map +1 -0
  277. package/dist/tracking/InflightContextAdapter.test.js +175 -0
  278. package/dist/tracking/InflightContextAdapter.test.js.map +1 -0
  279. package/dist/tracking/store/IStore.d.ts +41 -0
  280. package/dist/tracking/store/IStore.d.ts.map +1 -0
  281. package/dist/tracking/store/IStore.js +2 -0
  282. package/dist/tracking/store/IStore.js.map +1 -0
  283. package/dist/tracking/store/InMemoryStore.d.ts +21 -0
  284. package/dist/tracking/store/InMemoryStore.d.ts.map +1 -0
  285. package/dist/tracking/store/InMemoryStore.js +40 -0
  286. package/dist/tracking/store/InMemoryStore.js.map +1 -0
  287. package/dist/tracking/store/InMemoryStore.test.d.ts +2 -0
  288. package/dist/tracking/store/InMemoryStore.test.d.ts.map +1 -0
  289. package/dist/tracking/store/InMemoryStore.test.js +290 -0
  290. package/dist/tracking/store/InMemoryStore.test.js.map +1 -0
  291. package/dist/tracking/store/index.d.ts +3 -0
  292. package/dist/tracking/store/index.d.ts.map +1 -0
  293. package/dist/tracking/store/index.js +2 -0
  294. package/dist/tracking/store/index.js.map +1 -0
  295. package/dist/tracking/types.d.ts +77 -0
  296. package/dist/tracking/types.d.ts.map +1 -0
  297. package/dist/tracking/types.js +2 -0
  298. package/dist/tracking/types.js.map +1 -0
  299. package/dist/utils/ExplorerClient.d.ts +68 -0
  300. package/dist/utils/ExplorerClient.d.ts.map +1 -0
  301. package/dist/utils/ExplorerClient.js +324 -0
  302. package/dist/utils/ExplorerClient.js.map +1 -0
  303. package/dist/utils/ExplorerClient.test.d.ts +2 -0
  304. package/dist/utils/ExplorerClient.test.d.ts.map +1 -0
  305. package/dist/utils/ExplorerClient.test.js +261 -0
  306. package/dist/utils/ExplorerClient.test.js.map +1 -0
  307. package/dist/utils/balanceUtils.d.ts +12 -0
  308. package/dist/utils/balanceUtils.d.ts.map +1 -0
  309. package/dist/utils/balanceUtils.js +40 -0
  310. package/dist/utils/balanceUtils.js.map +1 -0
  311. package/dist/utils/balanceUtils.test.d.ts +2 -0
  312. package/dist/utils/balanceUtils.test.d.ts.map +1 -0
  313. package/dist/utils/balanceUtils.test.js +55 -0
  314. package/dist/utils/balanceUtils.test.js.map +1 -0
  315. package/dist/utils/blockTag.d.ts +14 -0
  316. package/dist/utils/blockTag.d.ts.map +1 -0
  317. package/dist/utils/blockTag.js +46 -0
  318. package/dist/utils/blockTag.js.map +1 -0
  319. package/dist/utils/bridgeUtils.d.ts +40 -0
  320. package/dist/utils/bridgeUtils.d.ts.map +1 -0
  321. package/dist/utils/bridgeUtils.js +54 -0
  322. package/dist/utils/bridgeUtils.js.map +1 -0
  323. package/dist/utils/bridgeUtils.test.d.ts +2 -0
  324. package/dist/utils/bridgeUtils.test.d.ts.map +1 -0
  325. package/dist/utils/bridgeUtils.test.js +163 -0
  326. package/dist/utils/bridgeUtils.test.js.map +1 -0
  327. package/dist/utils/errors.d.ts +4 -0
  328. package/dist/utils/errors.d.ts.map +1 -0
  329. package/dist/utils/errors.js +6 -0
  330. package/dist/utils/errors.js.map +1 -0
  331. package/dist/utils/gasEstimation.d.ts +65 -0
  332. package/dist/utils/gasEstimation.d.ts.map +1 -0
  333. package/dist/utils/gasEstimation.js +206 -0
  334. package/dist/utils/gasEstimation.js.map +1 -0
  335. package/dist/utils/solanaKeyParser.d.ts +10 -0
  336. package/dist/utils/solanaKeyParser.d.ts.map +1 -0
  337. package/dist/utils/solanaKeyParser.js +87 -0
  338. package/dist/utils/solanaKeyParser.js.map +1 -0
  339. package/dist/utils/solanaKeyParser.test.d.ts +2 -0
  340. package/dist/utils/solanaKeyParser.test.d.ts.map +1 -0
  341. package/dist/utils/solanaKeyParser.test.js +71 -0
  342. package/dist/utils/solanaKeyParser.test.js.map +1 -0
  343. package/dist/utils/tokenUtils.d.ts +38 -0
  344. package/dist/utils/tokenUtils.d.ts.map +1 -0
  345. package/dist/utils/tokenUtils.js +65 -0
  346. package/dist/utils/tokenUtils.js.map +1 -0
  347. package/dist/utils/transactionUtils.d.ts +22 -0
  348. package/dist/utils/transactionUtils.d.ts.map +1 -0
  349. package/dist/utils/transactionUtils.js +26 -0
  350. package/dist/utils/transactionUtils.js.map +1 -0
  351. package/package.json +87 -3
  352. package/src/bridges/LiFiBridge.test.ts +615 -0
  353. package/src/bridges/LiFiBridge.ts +731 -0
  354. package/src/config/RebalancerConfig.test.ts +921 -0
  355. package/src/config/RebalancerConfig.ts +63 -0
  356. package/src/config/types.ts +613 -0
  357. package/src/core/InventoryRebalancer.test.ts +1858 -0
  358. package/src/core/InventoryRebalancer.ts +1455 -0
  359. package/src/core/Rebalancer.test.ts +686 -0
  360. package/src/core/Rebalancer.ts +686 -0
  361. package/src/core/RebalancerOrchestrator.test.ts +871 -0
  362. package/src/core/RebalancerOrchestrator.ts +273 -0
  363. package/src/core/RebalancerService.test.ts +1094 -0
  364. package/src/core/RebalancerService.ts +412 -0
  365. package/src/e2e/E2E_TEST_CONVENTIONS.md +222 -0
  366. package/src/e2e/collateral-deficit.e2e-test.ts +403 -0
  367. package/src/e2e/composite.e2e-test.ts +1008 -0
  368. package/src/e2e/fixtures/routes.ts +532 -0
  369. package/src/e2e/harness/BaseLocalDeploymentManager.ts +246 -0
  370. package/src/e2e/harness/BridgeSetup.ts +95 -0
  371. package/src/e2e/harness/Erc20InventoryLocalDeploymentManager.ts +183 -0
  372. package/src/e2e/harness/Erc20LocalDeploymentManager.ts +190 -0
  373. package/src/e2e/harness/ForkIndexer.test.ts +448 -0
  374. package/src/e2e/harness/ForkIndexer.ts +183 -0
  375. package/src/e2e/harness/MixedLocalDeploymentManager.ts +196 -0
  376. package/src/e2e/harness/MockExplorerClient.ts +94 -0
  377. package/src/e2e/harness/MockExternalBridge.ts +411 -0
  378. package/src/e2e/harness/NativeLocalDeploymentManager.ts +138 -0
  379. package/src/e2e/harness/SnapshotHelper.ts +56 -0
  380. package/src/e2e/harness/TestHelpers.ts +169 -0
  381. package/src/e2e/harness/TestRebalancer.ts +758 -0
  382. package/src/e2e/harness/TransferHelper.ts +188 -0
  383. package/src/e2e/inventory-erc20-minAmount.e2e-test.ts +735 -0
  384. package/src/e2e/inventory-erc20-weighted.e2e-test.ts +733 -0
  385. package/src/e2e/inventory-minAmount.e2e-test.ts +734 -0
  386. package/src/e2e/inventory-weighted.e2e-test.ts +734 -0
  387. package/src/e2e/minAmount.e2e-test.ts +313 -0
  388. package/src/e2e/mixed-weighted.e2e-test.ts +267 -0
  389. package/src/e2e/weighted.e2e-test.ts +304 -0
  390. package/src/factories/RebalancerContextFactory.test.ts +394 -0
  391. package/src/factories/RebalancerContextFactory.ts +771 -0
  392. package/src/index.ts +125 -0
  393. package/src/interfaces/IExternalBridge.ts +117 -0
  394. package/src/interfaces/IMetrics.ts +5 -0
  395. package/src/interfaces/IMonitor.ts +71 -0
  396. package/src/interfaces/IRebalancer.ts +57 -0
  397. package/src/interfaces/IStrategy.ts +81 -0
  398. package/src/metrics/Metrics.ts +335 -0
  399. package/src/metrics/PriceGetter.ts +74 -0
  400. package/src/metrics/scripts/metrics.ts +139 -0
  401. package/src/monitor/Monitor.ts +324 -0
  402. package/src/service.ts +285 -0
  403. package/src/strategy/BaseStrategy.ts +553 -0
  404. package/src/strategy/CollateralDeficitStrategy.test.ts +728 -0
  405. package/src/strategy/CollateralDeficitStrategy.ts +421 -0
  406. package/src/strategy/CompositeStrategy.test.ts +418 -0
  407. package/src/strategy/CompositeStrategy.ts +102 -0
  408. package/src/strategy/MinAmountStrategy.test.ts +732 -0
  409. package/src/strategy/MinAmountStrategy.ts +200 -0
  410. package/src/strategy/StrategyFactory.test.ts +108 -0
  411. package/src/strategy/StrategyFactory.ts +157 -0
  412. package/src/strategy/WeightedStrategy.test.ts +529 -0
  413. package/src/strategy/WeightedStrategy.ts +126 -0
  414. package/src/strategy/index.ts +6 -0
  415. package/src/test/helpers.ts +477 -0
  416. package/src/test/lifiMocks.ts +211 -0
  417. package/src/tracking/ActionTracker.test.ts +1625 -0
  418. package/src/tracking/ActionTracker.ts +1019 -0
  419. package/src/tracking/IActionTracker.ts +213 -0
  420. package/src/tracking/InflightContextAdapter.test.ts +206 -0
  421. package/src/tracking/InflightContextAdapter.ts +75 -0
  422. package/src/tracking/store/IStore.ts +48 -0
  423. package/src/tracking/store/InMemoryStore.test.ts +338 -0
  424. package/src/tracking/store/InMemoryStore.ts +59 -0
  425. package/src/tracking/store/index.ts +2 -0
  426. package/src/tracking/types.ts +118 -0
  427. package/src/utils/ExplorerClient.test.ts +386 -0
  428. package/src/utils/ExplorerClient.ts +439 -0
  429. package/src/utils/balanceUtils.test.ts +79 -0
  430. package/src/utils/balanceUtils.ts +65 -0
  431. package/src/utils/blockTag.ts +68 -0
  432. package/src/utils/bridgeUtils.test.ts +193 -0
  433. package/src/utils/bridgeUtils.ts +101 -0
  434. package/src/utils/errors.ts +5 -0
  435. package/src/utils/gasEstimation.ts +306 -0
  436. package/src/utils/solanaKeyParser.test.ts +103 -0
  437. package/src/utils/solanaKeyParser.ts +117 -0
  438. package/src/utils/tokenUtils.ts +89 -0
  439. package/src/utils/transactionUtils.ts +41 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weighted.e2e-test.js","sourceRoot":"","sources":["../../src/e2e/weighted.e2e-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { type Logger } from 'pino';
2
+ import { IRegistry } from '@humanode-hyperlane/registry';
3
+ import { MultiProtocolProvider, MultiProvider, type Token, WarpCore, type WarpCoreConfig } from '@humanode-hyperlane/sdk';
4
+ import { ProtocolType } from '@humanode-hyperlane/utils';
5
+ import { type RebalancerConfig } from '../config/RebalancerConfig.js';
6
+ import { RebalancerOrchestrator } from '../core/RebalancerOrchestrator.js';
7
+ import type { ExternalBridgeRegistry } from '../interfaces/IExternalBridge.js';
8
+ import type { IRebalancer } from '../interfaces/IRebalancer.js';
9
+ import type { IStrategy } from '../interfaces/IStrategy.js';
10
+ import { Metrics } from '../metrics/Metrics.js';
11
+ import { type InventoryMonitorConfig, Monitor } from '../monitor/Monitor.js';
12
+ import type { IActionTracker } from '../tracking/IActionTracker.js';
13
+ import { InflightContextAdapter } from '../tracking/InflightContextAdapter.js';
14
+ import { type IExplorerClient } from '../utils/ExplorerClient.js';
15
+ export declare class RebalancerContextFactory {
16
+ private readonly config;
17
+ private readonly warpCore;
18
+ private readonly tokensByChainName;
19
+ private readonly multiProvider;
20
+ private readonly multiProtocolProvider;
21
+ private readonly registry;
22
+ private readonly logger;
23
+ private readonly inventorySignerKeysByProtocol?;
24
+ /**
25
+ * @param config - The rebalancer config
26
+ * @param warpCore - An instance of `WarpCore` configured for the specified `warpRouteId`.
27
+ * @param tokensByChainName - A map of chain->token to ease the lookup of token by chain
28
+ * @param multiProvider - MultiProvider instance (for movable collateral operations)
29
+ * @param multiProtocolProvider - MultiProtocolProvider instance (with mailbox metadata)
30
+ * @param registry - IRegistry instance
31
+ * @param logger - Logger instance
32
+ */
33
+ private constructor();
34
+ /**
35
+ * @param config - The rebalancer config
36
+ * @param multiProvider - MultiProvider instance (for movable collateral operations)
37
+ * @param multiProtocolProvider - MultiProtocolProvider instance (optional, created from multiProvider if not provided)
38
+ * @param registry - IRegistry instance
39
+ * @param logger - Logger instance
40
+ */
41
+ static create(config: RebalancerConfig, multiProvider: MultiProvider, multiProtocolProvider: MultiProtocolProvider | undefined, registry: IRegistry, logger: Logger, inventorySignerKeysByProtocol?: Partial<Record<ProtocolType, string>>, warpCoreConfigOverride?: WarpCoreConfig): Promise<RebalancerContextFactory>;
42
+ getWarpCore(): WarpCore;
43
+ getTokenForChain(chainName: string): Token | undefined;
44
+ createMetrics(coingeckoApiKey?: string): Promise<Metrics>;
45
+ createMonitor(checkFrequency: number, inventoryConfig?: InventoryMonitorConfig): Monitor;
46
+ createStrategy(metrics?: Metrics): Promise<IStrategy>;
47
+ private createMovableCollateralRebalancer;
48
+ createActionTracker(explorerUrlOrClient?: string | IExplorerClient): Promise<{
49
+ tracker: IActionTracker;
50
+ adapter: InflightContextAdapter;
51
+ }>;
52
+ /**
53
+ * Creates inventory components for inventory-based rebalancing.
54
+ * Returns null if inventory config is not available.
55
+ *
56
+ * @param actionTracker - ActionTracker instance for tracking inventory actions
57
+ * @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
58
+ */
59
+ private createInventoryRebalancerAndConfig;
60
+ private buildExternalBridgeRegistry;
61
+ /**
62
+ * Creates all rebalancers based on config execution types.
63
+ * Returns an array of rebalancers (movableCollateral and/or inventory)
64
+ * along with metadata needed for monitor and orchestrator.
65
+ *
66
+ * @param actionTracker - ActionTracker instance for tracking actions
67
+ * @param metrics - Optional Metrics instance
68
+ * @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
69
+ */
70
+ createRebalancers(actionTracker: IActionTracker, metrics?: Metrics, externalBridgeRegistryOverride?: Partial<ExternalBridgeRegistry>): Promise<{
71
+ rebalancers: IRebalancer[];
72
+ externalBridgeRegistry: Partial<ExternalBridgeRegistry>;
73
+ inventoryConfig?: InventoryMonitorConfig;
74
+ }>;
75
+ /**
76
+ * Creates a RebalancerOrchestrator with all required dependencies.
77
+ */
78
+ createOrchestrator(options: {
79
+ strategy: IStrategy;
80
+ actionTracker: IActionTracker;
81
+ inflightContextAdapter: InflightContextAdapter;
82
+ rebalancers: IRebalancer[];
83
+ externalBridgeRegistry: Partial<ExternalBridgeRegistry>;
84
+ metrics?: Metrics;
85
+ }): RebalancerOrchestrator;
86
+ private hasMovableCollateralChains;
87
+ private getInitialTotalCollateral;
88
+ }
89
+ //# sourceMappingURL=RebalancerContextFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RebalancerContextFactory.d.ts","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,420 @@
1
+ import { MultiProtocolCore, MultiProtocolProvider, WarpCore, } from '@humanode-hyperlane/sdk';
2
+ import { assert, ProtocolType, objMap, toWei, } from '@humanode-hyperlane/utils';
3
+ import { LiFiBridge } from '../bridges/LiFiBridge.js';
4
+ import { ExecutionType, ExternalBridgeType, getAllBridges, getInventoryChainNames, getInventoryOriginChainNames, getOverrideExecutionType, getStrategyChainConfig, getStrategyChainNames, } from '../config/types.js';
5
+ import { InventoryRebalancer, } from '../core/InventoryRebalancer.js';
6
+ import { Rebalancer } from '../core/Rebalancer.js';
7
+ import { RebalancerOrchestrator } from '../core/RebalancerOrchestrator.js';
8
+ import { Metrics } from '../metrics/Metrics.js';
9
+ import { PriceGetter } from '../metrics/PriceGetter.js';
10
+ import { Monitor } from '../monitor/Monitor.js';
11
+ import { StrategyFactory } from '../strategy/StrategyFactory.js';
12
+ import { ActionTracker, } from '../tracking/ActionTracker.js';
13
+ import { InflightContextAdapter } from '../tracking/InflightContextAdapter.js';
14
+ import { InMemoryStore } from '../tracking/store/index.js';
15
+ import { ExplorerClient, } from '../utils/ExplorerClient.js';
16
+ import { isCollateralizedTokenEligibleForRebalancing } from '../utils/tokenUtils.js';
17
+ const DEFAULT_EXPLORER_URL = process.env.EXPLORER_API_URL || 'https://explorer4.hasura.app/v1/graphql';
18
+ export class RebalancerContextFactory {
19
+ config;
20
+ warpCore;
21
+ tokensByChainName;
22
+ multiProvider;
23
+ multiProtocolProvider;
24
+ registry;
25
+ logger;
26
+ inventorySignerKeysByProtocol;
27
+ /**
28
+ * @param config - The rebalancer config
29
+ * @param warpCore - An instance of `WarpCore` configured for the specified `warpRouteId`.
30
+ * @param tokensByChainName - A map of chain->token to ease the lookup of token by chain
31
+ * @param multiProvider - MultiProvider instance (for movable collateral operations)
32
+ * @param multiProtocolProvider - MultiProtocolProvider instance (with mailbox metadata)
33
+ * @param registry - IRegistry instance
34
+ * @param logger - Logger instance
35
+ */
36
+ constructor(config, warpCore, tokensByChainName, multiProvider, multiProtocolProvider, registry, logger, inventorySignerKeysByProtocol) {
37
+ this.config = config;
38
+ this.warpCore = warpCore;
39
+ this.tokensByChainName = tokensByChainName;
40
+ this.multiProvider = multiProvider;
41
+ this.multiProtocolProvider = multiProtocolProvider;
42
+ this.registry = registry;
43
+ this.logger = logger;
44
+ this.inventorySignerKeysByProtocol = inventorySignerKeysByProtocol;
45
+ }
46
+ /**
47
+ * @param config - The rebalancer config
48
+ * @param multiProvider - MultiProvider instance (for movable collateral operations)
49
+ * @param multiProtocolProvider - MultiProtocolProvider instance (optional, created from multiProvider if not provided)
50
+ * @param registry - IRegistry instance
51
+ * @param logger - Logger instance
52
+ */
53
+ static async create(config, multiProvider, multiProtocolProvider, registry, logger, inventorySignerKeysByProtocol, warpCoreConfigOverride) {
54
+ logger.debug({
55
+ warpRouteId: config.warpRouteId,
56
+ }, 'Creating RebalancerContextFactory');
57
+ // TODO: should we pull addressed for chains we care about, i.e those in the warp config
58
+ const addresses = await registry.getAddresses();
59
+ // The Sealevel warp adapters require the Mailbox address, so we
60
+ // get mailboxes for all chains and merge them with the chain metadata.
61
+ const mailboxes = objMap(addresses, (_, { mailbox }) => ({ mailbox }));
62
+ // Fetch warp route config FIRST to get chain list
63
+ const warpCoreConfig = warpCoreConfigOverride ??
64
+ (await registry.getWarpRoute(config.warpRouteId));
65
+ if (!warpCoreConfig) {
66
+ throw new Error(`Warp route config for ${config.warpRouteId} not found in registry`);
67
+ }
68
+ // Force-initialize providers for EVM warp route chains only.
69
+ // This ensures fromMultiProvider() snapshots actual provider instances.
70
+ // Non-EVM chains (StarkNet, Sealevel, etc.) don't use ethers providers
71
+ // and would crash if we tried to build one (e.g. non-numeric chainId).
72
+ const warpChains = [
73
+ ...new Set(warpCoreConfig.tokens.map((t) => t.chainName)),
74
+ ];
75
+ for (const chain of warpChains) {
76
+ if (multiProvider.getProtocol(chain) !== ProtocolType.Ethereum) {
77
+ logger.debug({ chain }, 'Skipping provider init for non-EVM chain');
78
+ continue;
79
+ }
80
+ multiProvider.getProvider(chain);
81
+ }
82
+ // Create MultiProtocolProvider (convert from MultiProvider if not provided)
83
+ const mpp = multiProtocolProvider ??
84
+ MultiProtocolProvider.fromMultiProvider(multiProvider);
85
+ const extendedMultiProtocolProvider = mpp.extendChainMetadata(mailboxes);
86
+ const warpCore = WarpCore.FromConfig(extendedMultiProtocolProvider, warpCoreConfig);
87
+ const tokensByChainName = Object.fromEntries(warpCore.tokens.map((t) => [t.chainName, t]));
88
+ logger.debug({
89
+ warpRouteId: config.warpRouteId,
90
+ }, 'RebalancerContextFactory created successfully');
91
+ return new RebalancerContextFactory(config, warpCore, tokensByChainName, multiProvider, extendedMultiProtocolProvider, registry, logger, inventorySignerKeysByProtocol);
92
+ }
93
+ getWarpCore() {
94
+ return this.warpCore;
95
+ }
96
+ getTokenForChain(chainName) {
97
+ return this.tokensByChainName[chainName];
98
+ }
99
+ async createMetrics(coingeckoApiKey) {
100
+ this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating Metrics');
101
+ const tokenPriceGetter = PriceGetter.create(this.multiProvider.metadata, this.logger, coingeckoApiKey);
102
+ const warpDeployConfig = await this.registry.getWarpDeployConfig(this.config.warpRouteId);
103
+ return new Metrics(tokenPriceGetter, warpDeployConfig, this.warpCore, this.config.warpRouteId, this.logger);
104
+ }
105
+ createMonitor(checkFrequency, inventoryConfig) {
106
+ this.logger.debug({
107
+ warpRouteId: this.config.warpRouteId,
108
+ checkFrequency: checkFrequency,
109
+ }, 'Creating Monitor');
110
+ return new Monitor(checkFrequency, this.warpCore, this.logger, inventoryConfig);
111
+ }
112
+ async createStrategy(metrics) {
113
+ const strategyTypes = this.config.strategyConfig.map((s) => s.rebalanceStrategy);
114
+ this.logger.debug({
115
+ warpRouteId: this.config.warpRouteId,
116
+ strategyTypes,
117
+ strategyCount: this.config.strategyConfig.length,
118
+ }, 'Creating Strategy');
119
+ // Build minAmountsByChain from chain configs
120
+ const chainNames = getStrategyChainNames(this.config.strategyConfig);
121
+ const minAmountsByChain = {};
122
+ for (const chainName of chainNames) {
123
+ const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
124
+ if (chainConfig?.bridgeMinAcceptedAmount) {
125
+ const token = this.tokensByChainName[chainName];
126
+ const decimals = token?.decimals ?? 18;
127
+ minAmountsByChain[chainName] = BigInt(toWei(chainConfig.bridgeMinAcceptedAmount, decimals));
128
+ }
129
+ }
130
+ this.logger.debug({
131
+ minAmountsByChain: Object.fromEntries(Object.entries(minAmountsByChain).map(([k, v]) => [k, v.toString()])),
132
+ }, 'Built minimum amounts by chain for strategy');
133
+ return StrategyFactory.createStrategy(this.config.strategyConfig, this.tokensByChainName, await this.getInitialTotalCollateral(), this.logger, metrics, minAmountsByChain);
134
+ }
135
+ createMovableCollateralRebalancer(actionTracker, metrics) {
136
+ this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating Rebalancer');
137
+ const rebalancer = new Rebalancer(this.warpCore, this.multiProvider.metadata, this.tokensByChainName, this.multiProvider, actionTracker, this.logger, metrics);
138
+ return rebalancer;
139
+ }
140
+ async createActionTracker(explorerUrlOrClient = DEFAULT_EXPLORER_URL) {
141
+ this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating ActionTracker');
142
+ const transferStore = new InMemoryStore();
143
+ const intentStore = new InMemoryStore();
144
+ const actionStore = new InMemoryStore();
145
+ const explorerClient = typeof explorerUrlOrClient === 'string'
146
+ ? new ExplorerClient(explorerUrlOrClient, (domain) => this.multiProvider.getProtocol(domain))
147
+ : explorerUrlOrClient;
148
+ // 3. Get MultiProtocolCore from registry (supports all VM types)
149
+ // Only fetch/validate addresses for warp route chains (not all registry chains)
150
+ const warpRouteChains = new Set(this.warpCore.tokens.map((t) => t.chainName));
151
+ const coreAddresses = {};
152
+ for (const chain of warpRouteChains) {
153
+ const addrs = await this.registry.getChainAddresses(chain);
154
+ if (!addrs?.mailbox) {
155
+ throw new Error(`Missing mailbox address for chain ${chain} in registry`);
156
+ }
157
+ coreAddresses[chain] = addrs;
158
+ }
159
+ const multiProtocolCore = MultiProtocolCore.fromAddressesMap(coreAddresses, this.multiProtocolProvider);
160
+ // 4. Get rebalancer address from signer
161
+ // Use the first chain in the strategy to get the signer address
162
+ const chainNames = getStrategyChainNames(this.config.strategyConfig);
163
+ if (chainNames.length === 0) {
164
+ throw new Error('No chains configured in strategy');
165
+ }
166
+ const signer = this.multiProvider.getSigner(chainNames[0]);
167
+ const rebalancerAddress = await signer.getAddress();
168
+ const bridges = getAllBridges(this.config.strategyConfig);
169
+ // Build router→domain mapping (source of truth for routers and domains)
170
+ const routersByDomain = {};
171
+ for (const token of this.warpCore.tokens) {
172
+ const domain = this.multiProvider.getDomainId(token.chainName);
173
+ routersByDomain[domain] = token.addressOrDenom;
174
+ }
175
+ const trackerConfig = {
176
+ routersByDomain,
177
+ bridges,
178
+ rebalancerAddress,
179
+ inventorySignerAddresses: this.config.inventorySigners
180
+ ? Object.entries(this.config.inventorySigners)
181
+ .filter(([protocol]) => protocol === ProtocolType.Ethereum)
182
+ .map(([, signerConfig]) => signerConfig)
183
+ .map((s) => s.address)
184
+ .filter(Boolean)
185
+ : undefined,
186
+ intentTTL: this.config.intentTTL,
187
+ };
188
+ // 6. Create ActionTracker
189
+ const tracker = new ActionTracker(transferStore, intentStore, actionStore, explorerClient, multiProtocolCore, trackerConfig, this.logger);
190
+ // 7. Create InflightContextAdapter
191
+ const adapter = new InflightContextAdapter(tracker, this.multiProvider);
192
+ this.logger.debug({
193
+ warpRouteId: this.config.warpRouteId,
194
+ routerCount: Object.keys(routersByDomain).length,
195
+ bridgeCount: bridges.length,
196
+ domainCount: Object.keys(routersByDomain).length,
197
+ }, 'ActionTracker created successfully');
198
+ return { tracker, adapter };
199
+ }
200
+ /**
201
+ * Creates inventory components for inventory-based rebalancing.
202
+ * Returns null if inventory config is not available.
203
+ *
204
+ * @param actionTracker - ActionTracker instance for tracking inventory actions
205
+ * @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
206
+ */
207
+ async createInventoryRebalancerAndConfig(actionTracker, externalBridgeRegistryOverride) {
208
+ const { inventorySigners } = this.config;
209
+ if (!inventorySigners || Object.keys(inventorySigners).length === 0) {
210
+ this.logger.debug('Inventory config not available, skipping inventory components creation');
211
+ return null;
212
+ }
213
+ const redactedInventorySigners = Object.fromEntries(Object.entries(inventorySigners).map(([protocol, signerConfig]) => [
214
+ protocol,
215
+ signerConfig ? { address: signerConfig.address } : signerConfig,
216
+ ]));
217
+ this.logger.debug({
218
+ warpRouteId: this.config.warpRouteId,
219
+ inventorySigners: redactedInventorySigners,
220
+ }, 'Creating inventory components');
221
+ const inventoryChains = getInventoryChainNames(this.config.strategyConfig);
222
+ const inventoryOriginChains = getInventoryOriginChainNames(this.config.strategyConfig);
223
+ const allRelevantChains = Array.from(new Set([...inventoryChains, ...inventoryOriginChains]));
224
+ if (allRelevantChains.length === 0) {
225
+ this.logger.debug('No inventory chains configured');
226
+ return null;
227
+ }
228
+ const requiredProtocols = new Set(allRelevantChains.map((chain) => {
229
+ const metadata = this.warpCore.multiProvider.getChainMetadata(chain);
230
+ assert(metadata?.protocol, `No protocol in chain metadata for ${chain}`);
231
+ return metadata.protocol;
232
+ }));
233
+ const SUPPORTED_INVENTORY_PROTOCOLS = new Set([
234
+ ProtocolType.Ethereum,
235
+ ProtocolType.Sealevel,
236
+ ]);
237
+ for (const protocol of requiredProtocols) {
238
+ const chainsForProtocol = allRelevantChains.filter((chain) => this.warpCore.multiProvider.getChainMetadata(chain).protocol ===
239
+ protocol);
240
+ assert(SUPPORTED_INVENTORY_PROTOCOLS.has(protocol), `Inventory rebalancing does not support protocol '${protocol}' (chains: ${chainsForProtocol.join(', ')}). Supported: ethereum, sealevel`);
241
+ }
242
+ for (const protocol of requiredProtocols) {
243
+ const chainsForProtocol = allRelevantChains.filter((chain) => this.warpCore.multiProvider.getChainMetadata(chain).protocol ===
244
+ protocol);
245
+ assert(this.config.inventorySigners?.[protocol]?.key ??
246
+ this.inventorySignerKeysByProtocol?.[protocol], `Missing inventory signer key for protocol ${protocol} (required by inventory chains: ${chainsForProtocol.join(', ')})`);
247
+ }
248
+ // Validate inventory address coverage for all required protocols
249
+ for (const protocol of requiredProtocols) {
250
+ const chainsForProtocol = allRelevantChains.filter((chain) => this.warpCore.multiProvider.getChainMetadata(chain).protocol ===
251
+ protocol);
252
+ assert(inventorySigners[protocol]?.address, `Missing inventory address for protocol ${protocol} (required by inventory chains: ${chainsForProtocol.join(', ')})`);
253
+ }
254
+ const externalBridgeRegistry = externalBridgeRegistryOverride ?? this.buildExternalBridgeRegistry();
255
+ if (Object.keys(externalBridgeRegistry).length === 0) {
256
+ if (externalBridgeRegistryOverride !== undefined) {
257
+ this.logger.debug('No external bridges in override registry, skipping inventory components');
258
+ }
259
+ else {
260
+ this.logger.debug('No external bridges configured, skipping inventory components');
261
+ }
262
+ const inventoryAddresses = Object.fromEntries(Object.entries(inventorySigners).map(([protocol, cfg]) => [
263
+ protocol,
264
+ cfg.address,
265
+ ]));
266
+ const inventoryConfig = {
267
+ inventoryAddresses,
268
+ chains: allRelevantChains,
269
+ };
270
+ // Merge config addresses with runtime keys
271
+ const mergedSigners = {};
272
+ for (const [protocol, cfg] of Object.entries(inventorySigners)) {
273
+ const protocolKey = protocol;
274
+ mergedSigners[protocolKey] = {
275
+ address: cfg.address,
276
+ key: cfg.key ?? this.inventorySignerKeysByProtocol?.[protocolKey],
277
+ };
278
+ }
279
+ const inventoryRebalancer = new InventoryRebalancer({
280
+ inventorySigners: mergedSigners,
281
+ inventoryChains,
282
+ }, actionTracker, externalBridgeRegistryOverride ?? {}, this.warpCore, this.multiProvider, this.logger);
283
+ return {
284
+ inventoryRebalancer,
285
+ externalBridgeRegistry: externalBridgeRegistryOverride ?? {},
286
+ inventoryConfig,
287
+ };
288
+ }
289
+ // 3. Build inventory config
290
+ const inventoryAddresses = Object.fromEntries(Object.entries(inventorySigners).map(([protocol, cfg]) => [
291
+ protocol,
292
+ cfg.address,
293
+ ]));
294
+ const inventoryConfig = {
295
+ inventoryAddresses,
296
+ chains: allRelevantChains,
297
+ };
298
+ // 4. Create InventoryRebalancer
299
+ // Merge config addresses with runtime keys
300
+ const mergedSigners = {};
301
+ for (const [protocol, cfg] of Object.entries(inventorySigners)) {
302
+ const protocolKey = protocol;
303
+ mergedSigners[protocolKey] = {
304
+ address: cfg.address,
305
+ key: cfg.key ?? this.inventorySignerKeysByProtocol?.[protocolKey],
306
+ };
307
+ }
308
+ const inventoryRebalancer = new InventoryRebalancer({
309
+ inventorySigners: mergedSigners,
310
+ inventoryChains,
311
+ }, actionTracker, externalBridgeRegistry, this.warpCore, this.multiProvider, this.logger);
312
+ this.logger.info({
313
+ inventoryChains,
314
+ inventorySigners: redactedInventorySigners,
315
+ }, 'Inventory components created successfully');
316
+ return { inventoryRebalancer, externalBridgeRegistry, inventoryConfig };
317
+ }
318
+ buildExternalBridgeRegistry() {
319
+ const { externalBridges } = this.config;
320
+ const registry = {};
321
+ for (const bridgeType of Object.values(ExternalBridgeType)) {
322
+ switch (bridgeType) {
323
+ case ExternalBridgeType.LiFi: {
324
+ const lifiConfig = externalBridges?.lifi;
325
+ if (lifiConfig?.integrator) {
326
+ registry[ExternalBridgeType.LiFi] = new LiFiBridge({
327
+ integrator: lifiConfig.integrator,
328
+ defaultSlippage: lifiConfig.defaultSlippage,
329
+ chainMetadata: this.multiProvider.metadata,
330
+ }, this.logger);
331
+ }
332
+ break;
333
+ }
334
+ default: {
335
+ // Exhaustive check - TypeScript will error if new enum value added
336
+ const _exhaustive = bridgeType;
337
+ throw new Error(`Unknown bridge type: ${_exhaustive}`);
338
+ }
339
+ }
340
+ }
341
+ return registry;
342
+ }
343
+ /**
344
+ * Creates all rebalancers based on config execution types.
345
+ * Returns an array of rebalancers (movableCollateral and/or inventory)
346
+ * along with metadata needed for monitor and orchestrator.
347
+ *
348
+ * @param actionTracker - ActionTracker instance for tracking actions
349
+ * @param metrics - Optional Metrics instance
350
+ * @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
351
+ */
352
+ async createRebalancers(actionTracker, metrics, externalBridgeRegistryOverride) {
353
+ const rebalancers = [];
354
+ let externalBridgeRegistry = {};
355
+ let inventoryConfig;
356
+ // Check if any chains use movableCollateral execution type
357
+ const hasMovableCollateral = this.hasMovableCollateralChains();
358
+ if (hasMovableCollateral) {
359
+ const rebalancer = this.createMovableCollateralRebalancer(actionTracker, metrics);
360
+ rebalancers.push(rebalancer);
361
+ }
362
+ // Check if any chains use inventory execution type
363
+ const inventoryComponents = await this.createInventoryRebalancerAndConfig(actionTracker, externalBridgeRegistryOverride);
364
+ if (inventoryComponents) {
365
+ rebalancers.push(inventoryComponents.inventoryRebalancer);
366
+ externalBridgeRegistry = inventoryComponents.externalBridgeRegistry;
367
+ inventoryConfig = inventoryComponents.inventoryConfig;
368
+ }
369
+ return { rebalancers, externalBridgeRegistry, inventoryConfig };
370
+ }
371
+ /**
372
+ * Creates a RebalancerOrchestrator with all required dependencies.
373
+ */
374
+ createOrchestrator(options) {
375
+ this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating RebalancerOrchestrator');
376
+ return new RebalancerOrchestrator({
377
+ strategy: options.strategy,
378
+ actionTracker: options.actionTracker,
379
+ inflightContextAdapter: options.inflightContextAdapter,
380
+ rebalancerConfig: this.config,
381
+ logger: this.logger,
382
+ rebalancers: options.rebalancers,
383
+ externalBridgeRegistry: options.externalBridgeRegistry,
384
+ metrics: options.metrics,
385
+ });
386
+ }
387
+ hasMovableCollateralChains() {
388
+ return getStrategyChainNames(this.config.strategyConfig).some((chainName) => {
389
+ const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
390
+ if ((chainConfig?.executionType ?? ExecutionType.MovableCollateral) ===
391
+ ExecutionType.MovableCollateral) {
392
+ return true;
393
+ }
394
+ if (!chainConfig?.override) {
395
+ return false;
396
+ }
397
+ return Object.values(chainConfig.override).some((overrideConfig) => {
398
+ const overrideExecutionType = getOverrideExecutionType(overrideConfig);
399
+ return ((overrideExecutionType ??
400
+ chainConfig.executionType ??
401
+ ExecutionType.MovableCollateral) ===
402
+ ExecutionType.MovableCollateral);
403
+ });
404
+ });
405
+ }
406
+ async getInitialTotalCollateral() {
407
+ let initialTotalCollateral = 0n;
408
+ const chainNames = new Set(getStrategyChainNames(this.config.strategyConfig));
409
+ await Promise.all(this.warpCore.tokens.map(async (token) => {
410
+ if (isCollateralizedTokenEligibleForRebalancing(token) &&
411
+ chainNames.has(token.chainName)) {
412
+ const adapter = token.getHypAdapter(this.warpCore.multiProvider);
413
+ const bridgedSupply = await adapter.getBridgedSupply();
414
+ initialTotalCollateral += bridgedSupply ?? 0n;
415
+ }
416
+ }));
417
+ return initialTotalCollateral;
418
+ }
419
+ }
420
+ //# sourceMappingURL=RebalancerContextFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RebalancerContextFactory.js","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RebalancerContextFactory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RebalancerContextFactory.test.d.ts","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.test.ts"],"names":[],"mappings":""}