@hyperlane-xyz/rebalancer 2.0.0 → 3.0.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 (209) hide show
  1. package/dist/bridges/LiFiBridge.d.ts +67 -0
  2. package/dist/bridges/LiFiBridge.d.ts.map +1 -0
  3. package/dist/bridges/LiFiBridge.js +386 -0
  4. package/dist/bridges/LiFiBridge.js.map +1 -0
  5. package/dist/config/RebalancerConfig.d.ts +7 -2
  6. package/dist/config/RebalancerConfig.d.ts.map +1 -1
  7. package/dist/config/RebalancerConfig.js +7 -4
  8. package/dist/config/RebalancerConfig.js.map +1 -1
  9. package/dist/config/RebalancerConfig.test.js +134 -1
  10. package/dist/config/RebalancerConfig.test.js.map +1 -1
  11. package/dist/config/types.d.ts +1016 -304
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +105 -10
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/core/InventoryRebalancer.d.ts +190 -0
  16. package/dist/core/InventoryRebalancer.d.ts.map +1 -0
  17. package/dist/core/InventoryRebalancer.js +885 -0
  18. package/dist/core/InventoryRebalancer.js.map +1 -0
  19. package/dist/core/InventoryRebalancer.test.d.ts +2 -0
  20. package/dist/core/InventoryRebalancer.test.d.ts.map +1 -0
  21. package/dist/core/InventoryRebalancer.test.js +1351 -0
  22. package/dist/core/InventoryRebalancer.test.js.map +1 -0
  23. package/dist/core/Rebalancer.d.ts +11 -4
  24. package/dist/core/Rebalancer.d.ts.map +1 -1
  25. package/dist/core/Rebalancer.js +92 -9
  26. package/dist/core/Rebalancer.js.map +1 -1
  27. package/dist/core/Rebalancer.test.js +82 -49
  28. package/dist/core/Rebalancer.test.js.map +1 -1
  29. package/dist/core/RebalancerOrchestrator.d.ts +30 -9
  30. package/dist/core/RebalancerOrchestrator.d.ts.map +1 -1
  31. package/dist/core/RebalancerOrchestrator.js +79 -71
  32. package/dist/core/RebalancerOrchestrator.js.map +1 -1
  33. package/dist/core/RebalancerOrchestrator.test.d.ts +2 -0
  34. package/dist/core/RebalancerOrchestrator.test.d.ts.map +1 -0
  35. package/dist/core/RebalancerOrchestrator.test.js +714 -0
  36. package/dist/core/RebalancerOrchestrator.test.js.map +1 -0
  37. package/dist/core/RebalancerService.d.ts +7 -3
  38. package/dist/core/RebalancerService.d.ts.map +1 -1
  39. package/dist/core/RebalancerService.js +44 -24
  40. package/dist/core/RebalancerService.js.map +1 -1
  41. package/dist/core/RebalancerService.test.js +71 -109
  42. package/dist/core/RebalancerService.test.js.map +1 -1
  43. package/dist/e2e/collateral-deficit.e2e-test.js +1 -3
  44. package/dist/e2e/collateral-deficit.e2e-test.js.map +1 -1
  45. package/dist/e2e/composite.e2e-test.js.map +1 -1
  46. package/dist/e2e/harness/BridgeSetup.d.ts +6 -0
  47. package/dist/e2e/harness/BridgeSetup.d.ts.map +1 -1
  48. package/dist/e2e/harness/BridgeSetup.js +10 -1
  49. package/dist/e2e/harness/BridgeSetup.js.map +1 -1
  50. package/dist/e2e/harness/TestHelpers.d.ts.map +1 -1
  51. package/dist/e2e/harness/TestHelpers.js +1 -4
  52. package/dist/e2e/harness/TestHelpers.js.map +1 -1
  53. package/dist/e2e/harness/TestRebalancer.d.ts +1 -1
  54. package/dist/e2e/harness/TestRebalancer.d.ts.map +1 -1
  55. package/dist/e2e/harness/TestRebalancer.js +6 -7
  56. package/dist/e2e/harness/TestRebalancer.js.map +1 -1
  57. package/dist/e2e/minAmount.e2e-test.js +0 -1
  58. package/dist/e2e/minAmount.e2e-test.js.map +1 -1
  59. package/dist/e2e/weighted.e2e-test.js +0 -1
  60. package/dist/e2e/weighted.e2e-test.js.map +1 -1
  61. package/dist/factories/RebalancerContextFactory.d.ts +48 -6
  62. package/dist/factories/RebalancerContextFactory.d.ts.map +1 -1
  63. package/dist/factories/RebalancerContextFactory.js +170 -17
  64. package/dist/factories/RebalancerContextFactory.js.map +1 -1
  65. package/dist/index.d.ts +5 -5
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/interfaces/IExternalBridge.d.ts +101 -0
  70. package/dist/interfaces/IExternalBridge.d.ts.map +1 -0
  71. package/dist/interfaces/IExternalBridge.js +2 -0
  72. package/dist/interfaces/IExternalBridge.js.map +1 -0
  73. package/dist/interfaces/IMonitor.d.ts +1 -0
  74. package/dist/interfaces/IMonitor.d.ts.map +1 -1
  75. package/dist/interfaces/IRebalancer.d.ts +25 -25
  76. package/dist/interfaces/IRebalancer.d.ts.map +1 -1
  77. package/dist/interfaces/IStrategy.d.ts +36 -3
  78. package/dist/interfaces/IStrategy.d.ts.map +1 -1
  79. package/dist/interfaces/IStrategy.js +12 -1
  80. package/dist/interfaces/IStrategy.js.map +1 -1
  81. package/dist/metrics/PriceGetter.js +1 -1
  82. package/dist/metrics/PriceGetter.js.map +1 -1
  83. package/dist/metrics/scripts/metrics.d.ts +3 -3
  84. package/dist/monitor/Monitor.d.ts +12 -2
  85. package/dist/monitor/Monitor.d.ts.map +1 -1
  86. package/dist/monitor/Monitor.js +46 -1
  87. package/dist/monitor/Monitor.js.map +1 -1
  88. package/dist/service.js +40 -17
  89. package/dist/service.js.map +1 -1
  90. package/dist/strategy/BaseStrategy.d.ts +12 -6
  91. package/dist/strategy/BaseStrategy.d.ts.map +1 -1
  92. package/dist/strategy/BaseStrategy.js +56 -21
  93. package/dist/strategy/BaseStrategy.js.map +1 -1
  94. package/dist/strategy/CollateralDeficitStrategy.d.ts +1 -1
  95. package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -1
  96. package/dist/strategy/CollateralDeficitStrategy.js +19 -11
  97. package/dist/strategy/CollateralDeficitStrategy.js.map +1 -1
  98. package/dist/strategy/CollateralDeficitStrategy.test.js +135 -2
  99. package/dist/strategy/CollateralDeficitStrategy.test.js.map +1 -1
  100. package/dist/strategy/CompositeStrategy.test.js +13 -0
  101. package/dist/strategy/CompositeStrategy.test.js.map +1 -1
  102. package/dist/strategy/MinAmountStrategy.test.js +4 -0
  103. package/dist/strategy/MinAmountStrategy.test.js.map +1 -1
  104. package/dist/strategy/StrategyFactory.d.ts +2 -1
  105. package/dist/strategy/StrategyFactory.d.ts.map +1 -1
  106. package/dist/strategy/StrategyFactory.js +24 -8
  107. package/dist/strategy/StrategyFactory.js.map +1 -1
  108. package/dist/strategy/WeightedStrategy.test.js +6 -0
  109. package/dist/strategy/WeightedStrategy.test.js.map +1 -1
  110. package/dist/test/helpers.d.ts +8 -7
  111. package/dist/test/helpers.d.ts.map +1 -1
  112. package/dist/test/helpers.js +23 -5
  113. package/dist/test/helpers.js.map +1 -1
  114. package/dist/test/lifiMocks.d.ts +51 -0
  115. package/dist/test/lifiMocks.d.ts.map +1 -0
  116. package/dist/test/lifiMocks.js +130 -0
  117. package/dist/test/lifiMocks.js.map +1 -0
  118. package/dist/tracking/ActionTracker.d.ts +33 -1
  119. package/dist/tracking/ActionTracker.d.ts.map +1 -1
  120. package/dist/tracking/ActionTracker.js +193 -22
  121. package/dist/tracking/ActionTracker.js.map +1 -1
  122. package/dist/tracking/ActionTracker.test.js +107 -19
  123. package/dist/tracking/ActionTracker.test.js.map +1 -1
  124. package/dist/tracking/IActionTracker.d.ts +47 -3
  125. package/dist/tracking/IActionTracker.d.ts.map +1 -1
  126. package/dist/tracking/InflightContextAdapter.d.ts.map +1 -1
  127. package/dist/tracking/InflightContextAdapter.js +24 -7
  128. package/dist/tracking/InflightContextAdapter.js.map +1 -1
  129. package/dist/tracking/InflightContextAdapter.test.js +7 -4
  130. package/dist/tracking/InflightContextAdapter.test.js.map +1 -1
  131. package/dist/tracking/types.d.ts +31 -2
  132. package/dist/tracking/types.d.ts.map +1 -1
  133. package/dist/utils/ExplorerClient.d.ts +2 -1
  134. package/dist/utils/ExplorerClient.d.ts.map +1 -1
  135. package/dist/utils/ExplorerClient.js +13 -8
  136. package/dist/utils/ExplorerClient.js.map +1 -1
  137. package/dist/utils/bridgeUtils.d.ts +27 -4
  138. package/dist/utils/bridgeUtils.d.ts.map +1 -1
  139. package/dist/utils/bridgeUtils.js +38 -0
  140. package/dist/utils/bridgeUtils.js.map +1 -1
  141. package/dist/utils/bridgeUtils.test.js +9 -0
  142. package/dist/utils/bridgeUtils.test.js.map +1 -1
  143. package/dist/utils/gasEstimation.d.ts +65 -0
  144. package/dist/utils/gasEstimation.d.ts.map +1 -0
  145. package/dist/utils/gasEstimation.js +176 -0
  146. package/dist/utils/gasEstimation.js.map +1 -0
  147. package/dist/utils/tokenUtils.d.ts +9 -1
  148. package/dist/utils/tokenUtils.d.ts.map +1 -1
  149. package/dist/utils/tokenUtils.js +11 -0
  150. package/dist/utils/tokenUtils.js.map +1 -1
  151. package/package.json +9 -7
  152. package/src/bridges/LiFiBridge.ts +538 -0
  153. package/src/config/RebalancerConfig.test.ts +160 -0
  154. package/src/config/RebalancerConfig.ts +14 -3
  155. package/src/config/types.ts +136 -10
  156. package/src/core/InventoryRebalancer.test.ts +1684 -0
  157. package/src/core/InventoryRebalancer.ts +1255 -0
  158. package/src/core/Rebalancer.test.ts +84 -30
  159. package/src/core/Rebalancer.ts +144 -23
  160. package/src/core/RebalancerOrchestrator.test.ts +860 -0
  161. package/src/core/RebalancerOrchestrator.ts +146 -95
  162. package/src/core/RebalancerService.test.ts +80 -123
  163. package/src/core/RebalancerService.ts +67 -33
  164. package/src/e2e/collateral-deficit.e2e-test.ts +2 -4
  165. package/src/e2e/composite.e2e-test.ts +5 -5
  166. package/src/e2e/harness/BridgeSetup.ts +28 -1
  167. package/src/e2e/harness/TestHelpers.ts +1 -4
  168. package/src/e2e/harness/TestRebalancer.ts +7 -7
  169. package/src/e2e/minAmount.e2e-test.ts +1 -2
  170. package/src/e2e/weighted.e2e-test.ts +1 -2
  171. package/src/factories/RebalancerContextFactory.ts +293 -24
  172. package/src/index.ts +20 -5
  173. package/src/interfaces/IExternalBridge.ts +115 -0
  174. package/src/interfaces/IMonitor.ts +1 -0
  175. package/src/interfaces/IRebalancer.ts +45 -29
  176. package/src/interfaces/IStrategy.ts +50 -3
  177. package/src/metrics/PriceGetter.ts +1 -1
  178. package/src/monitor/Monitor.ts +81 -2
  179. package/src/service.ts +59 -18
  180. package/src/strategy/BaseStrategy.ts +77 -24
  181. package/src/strategy/CollateralDeficitStrategy.test.ts +181 -4
  182. package/src/strategy/CollateralDeficitStrategy.ts +42 -15
  183. package/src/strategy/CompositeStrategy.test.ts +13 -0
  184. package/src/strategy/MinAmountStrategy.test.ts +4 -0
  185. package/src/strategy/StrategyFactory.ts +33 -6
  186. package/src/strategy/WeightedStrategy.test.ts +6 -0
  187. package/src/test/helpers.ts +39 -14
  188. package/src/test/lifiMocks.ts +174 -0
  189. package/src/tracking/ActionTracker.test.ts +122 -19
  190. package/src/tracking/ActionTracker.ts +284 -24
  191. package/src/tracking/IActionTracker.ts +58 -3
  192. package/src/tracking/InflightContextAdapter.test.ts +7 -4
  193. package/src/tracking/InflightContextAdapter.ts +42 -9
  194. package/src/tracking/types.ts +43 -2
  195. package/src/utils/ExplorerClient.ts +23 -10
  196. package/src/utils/bridgeUtils.test.ts +9 -0
  197. package/src/utils/bridgeUtils.ts +75 -6
  198. package/src/utils/gasEstimation.ts +272 -0
  199. package/src/utils/tokenUtils.ts +12 -0
  200. package/dist/tracking/index.d.ts +0 -7
  201. package/dist/tracking/index.d.ts.map +0 -1
  202. package/dist/tracking/index.js +0 -6
  203. package/dist/tracking/index.js.map +0 -1
  204. package/dist/utils/index.d.ts +0 -5
  205. package/dist/utils/index.d.ts.map +0 -1
  206. package/dist/utils/index.js +0 -5
  207. package/dist/utils/index.js.map +0 -1
  208. package/src/tracking/index.ts +0 -36
  209. package/src/utils/index.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"IStrategy.d.ts","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAClB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE,CAAC;CACpB"}
1
+ {"version":3,"file":"IStrategy.d.ts","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0GAA0G;IAC1G,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,KAAK;IACnD,aAAa,EAAE,mBAAmB,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,aAAa,EAAE,WAAW,CAAC;IAC3B,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,cAAc,CAAC;AAEpE;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,sBAAsB,CAEjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,cAAc,CAEzB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAClB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE,CAAC;CACpB"}
@@ -1,2 +1,13 @@
1
- export {};
1
+ /**
2
+ * Type guard to check if a route is a MovableCollateralRoute
3
+ */
4
+ export function isMovableCollateralRoute(route) {
5
+ return route.executionType === 'movableCollateral';
6
+ }
7
+ /**
8
+ * Type guard to check if a route is an InventoryRoute
9
+ */
10
+ export function isInventoryRoute(route) {
11
+ return route.executionType === 'inventory';
12
+ }
2
13
  //# sourceMappingURL=IStrategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IStrategy.js","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"IStrategy.js","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":"AA4CA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAoB;IAEpB,OAAO,KAAK,CAAC,aAAa,KAAK,mBAAmB,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAoB;IAEpB,OAAO,KAAK,CAAC,aAAa,KAAK,WAAW,CAAC;AAC7C,CAAC"}
@@ -22,7 +22,7 @@ export class PriceGetter extends CoinGeckoTokenPriceGetter {
22
22
  // e.g. Native warp routes on rollups that have been pre-funded.
23
23
  const coinGeckoId = token.coinGeckoId;
24
24
  if (!coinGeckoId) {
25
- this.logger.warn({
25
+ this.logger.debug({
26
26
  tokenSymbol: token.symbol,
27
27
  chain: token.chainName,
28
28
  tokenAddress: token.addressOrDenom,
@@ -1 +1 @@
1
- {"version":3,"file":"PriceGetter.js","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,yBAAyB,GAE1B,MAAM,oBAAoB,CAAC;AAE5B,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,IAAI,CACd;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,oBAAoB,CAAC;AAE5B,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"}
@@ -5,10 +5,10 @@ import { type ChainName, type Token, type WarpCore } from '@hyperlane-xyz/sdk';
5
5
  import { type Address } from '@hyperlane-xyz/utils';
6
6
  export declare const metricsRegister: Registry;
7
7
  export declare const rebalancerExecutionTotal: Counter<"warp_route_id" | "succeeded">;
8
- export declare const rebalancerExecutionAmount: Counter<"warp_route_id" | "origin" | "destination" | "token">;
8
+ export declare const rebalancerExecutionAmount: Counter<"origin" | "destination" | "warp_route_id" | "token">;
9
9
  export declare const rebalancerPollingErrorsTotal: Counter<"warp_route_id">;
10
- export declare const rebalancerIntentsCreatedTotal: Counter<"strategy" | "warp_route_id" | "origin" | "destination">;
11
- export declare const rebalancerActionsCreatedTotal: Counter<"warp_route_id" | "succeeded" | "origin" | "destination">;
10
+ export declare const rebalancerIntentsCreatedTotal: Counter<"strategy" | "origin" | "destination" | "warp_route_id">;
11
+ export declare const rebalancerActionsCreatedTotal: Counter<"origin" | "destination" | "warp_route_id" | "succeeded">;
12
12
  /**
13
13
  * Updates token balance metrics for a warp route token.
14
14
  */
@@ -1,6 +1,14 @@
1
1
  import { type Logger } from 'pino';
2
- import { type WarpCore } from '@hyperlane-xyz/sdk';
2
+ import { type ChainName, type WarpCore } from '@hyperlane-xyz/sdk';
3
+ import { Address } from '@hyperlane-xyz/utils';
3
4
  import { type IMonitor, type MonitorEvent, MonitorEventType } from '../interfaces/IMonitor.js';
5
+ /**
6
+ * Configuration for the Monitor's inventory tracking.
7
+ */
8
+ export interface InventoryMonitorConfig {
9
+ inventoryAddress: Address;
10
+ chains: ChainName[];
11
+ }
4
12
  /**
5
13
  * Simple monitor implementation that polls warp route collateral balances and emits them as MonitorEvent.
6
14
  * Awaits the TokenInfo handler before starting the next cycle to prevent race conditions.
@@ -9,6 +17,7 @@ export declare class Monitor implements IMonitor {
9
17
  private readonly checkFrequency;
10
18
  private readonly warpCore;
11
19
  private readonly logger;
20
+ private readonly inventoryConfig?;
12
21
  private tokenInfoHandler?;
13
22
  private errorHandler?;
14
23
  private startHandler?;
@@ -18,13 +27,14 @@ export declare class Monitor implements IMonitor {
18
27
  /**
19
28
  * @param checkFrequency - The frequency to poll balances in ms.
20
29
  */
21
- constructor(checkFrequency: number, warpCore: WarpCore, logger: Logger);
30
+ constructor(checkFrequency: number, warpCore: WarpCore, logger: Logger, inventoryConfig?: InventoryMonitorConfig | undefined);
22
31
  private computeConfirmedBlockTags;
23
32
  on(eventName: MonitorEventType.TokenInfo, fn: (event: MonitorEvent) => void | Promise<void>): this;
24
33
  on(eventName: MonitorEventType.Error, fn: (event: Error) => void): this;
25
34
  on(eventName: MonitorEventType.Start, fn: () => void): this;
26
35
  start(): Promise<void>;
27
36
  private getTokenBridgedSupply;
37
+ private fetchInventoryBalances;
28
38
  stop(): Promise<void>;
29
39
  }
30
40
  //# sourceMappingURL=Monitor.d.ts.map
@@ -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,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AAGnC;;;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;IAbzB,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;YAGnB,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;YA6FG,qBAAqB;IAmDnC,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,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAS,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,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;IA+CpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBtB"}
@@ -9,6 +9,7 @@ export class Monitor {
9
9
  checkFrequency;
10
10
  warpCore;
11
11
  logger;
12
+ inventoryConfig;
12
13
  tokenInfoHandler;
13
14
  errorHandler;
14
15
  startHandler;
@@ -18,10 +19,11 @@ export class Monitor {
18
19
  /**
19
20
  * @param checkFrequency - The frequency to poll balances in ms.
20
21
  */
21
- constructor(checkFrequency, warpCore, logger) {
22
+ constructor(checkFrequency, warpCore, logger, inventoryConfig) {
22
23
  this.checkFrequency = checkFrequency;
23
24
  this.warpCore = warpCore;
24
25
  this.logger = logger;
26
+ this.inventoryConfig = inventoryConfig;
25
27
  }
26
28
  async computeConfirmedBlockTags() {
27
29
  const blockTags = {};
@@ -77,6 +79,18 @@ export class Monitor {
77
79
  bridgedSupply,
78
80
  });
79
81
  }
82
+ const inventoryBalances = await this.fetchInventoryBalances();
83
+ if (Object.keys(inventoryBalances).length > 0) {
84
+ event.inventoryBalances = inventoryBalances;
85
+ this.logger.info({
86
+ 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
+ })),
92
+ }, 'Inventory balances fetched');
93
+ }
80
94
  if (this.tokenInfoHandler) {
81
95
  await this.tokenInfoHandler(event);
82
96
  }
@@ -141,6 +155,37 @@ export class Monitor {
141
155
  }
142
156
  return bridgedSupply;
143
157
  }
158
+ async fetchInventoryBalances() {
159
+ if (!this.inventoryConfig)
160
+ return {};
161
+ const balances = {};
162
+ const readPromises = this.inventoryConfig.chains.map(async (chainName) => {
163
+ const token = this.warpCore.tokens.find((t) => t.chainName === chainName);
164
+ if (!token) {
165
+ this.logger.warn({ chain: chainName }, 'No token found for inventory chain');
166
+ return { chainName, balance: 0n };
167
+ }
168
+ try {
169
+ const adapter = token.getAdapter(this.warpCore.multiProvider);
170
+ const balance = await adapter.getBalance(this.inventoryConfig.inventoryAddress);
171
+ this.logger.debug({
172
+ chain: chainName,
173
+ token: token.addressOrDenom,
174
+ balance: balance.toString(),
175
+ }, 'Read inventory balance');
176
+ return { chainName, balance };
177
+ }
178
+ catch (error) {
179
+ this.logger.error({ chain: chainName, error: error.message }, 'Failed to read inventory balance');
180
+ return { chainName, balance: 0n };
181
+ }
182
+ });
183
+ const results = await Promise.all(readPromises);
184
+ for (const { chainName, balance } of results) {
185
+ balances[chainName] = balance;
186
+ }
187
+ return balances;
188
+ }
144
189
  stop() {
145
190
  if (!this.isMonitorRunning)
146
191
  return Promise.resolve();
@@ -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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"}
package/dist/service.js CHANGED
@@ -8,7 +8,9 @@
8
8
  *
9
9
  * Environment Variables:
10
10
  * - REBALANCER_CONFIG_FILE: Path to the rebalancer configuration YAML file (required)
11
- * - HYP_KEY: Private key for signing transactions (required)
11
+ * - HYP_REBALANCER_KEY: Private key for movable collateral rebalancing operations (preferred)
12
+ * - HYP_KEY: Fallback private key for HYP_REBALANCER_KEY (optional)
13
+ * - HYP_INVENTORY_KEY: Private key for inventory operations - LiFi bridges and transferRemote (optional)
12
14
  * - COINGECKO_API_KEY: API key for CoinGecko price fetching (optional, for metrics)
13
15
  * - CHECK_FREQUENCY: Balance check frequency in ms (default: 60000)
14
16
  * - WITH_METRICS: Enable Prometheus metrics (default: "true")
@@ -19,12 +21,12 @@
19
21
  *
20
22
  * Usage:
21
23
  * node dist/service.js
22
- * REBALANCER_CONFIG_FILE=/config/rebalancer.yaml HYP_KEY=0x... node dist/service.js
24
+ * REBALANCER_CONFIG_FILE=/config/rebalancer.yaml HYP_REBALANCER_KEY=0x... HYP_INVENTORY_KEY=0x... node dist/service.js
23
25
  */
24
26
  import { Wallet } from 'ethers';
25
27
  import { DEFAULT_GITHUB_REGISTRY } from '@hyperlane-xyz/registry';
26
28
  import { getRegistry } from '@hyperlane-xyz/registry/fs';
27
- import { MultiProtocolProvider, MultiProvider } from '@hyperlane-xyz/sdk';
29
+ import { MultiProvider } from '@hyperlane-xyz/sdk';
28
30
  import { applyRpcUrlOverridesFromEnv, createServiceLogger, rootLogger, } from '@hyperlane-xyz/utils';
29
31
  import { RebalancerConfig } from './config/RebalancerConfig.js';
30
32
  import { RebalancerService } from './core/RebalancerService.js';
@@ -36,11 +38,13 @@ async function main() {
36
38
  rootLogger.error('REBALANCER_CONFIG_FILE environment variable is required');
37
39
  process.exit(1);
38
40
  }
39
- const privateKey = process.env.HYP_KEY;
40
- if (!privateKey) {
41
- rootLogger.error('HYP_KEY environment variable is required');
41
+ const rebalancerPrivateKey = process.env.HYP_REBALANCER_KEY ?? process.env.HYP_KEY;
42
+ if (!rebalancerPrivateKey) {
43
+ rootLogger.error('HYP_REBALANCER_KEY (or HYP_KEY) environment variable is required');
42
44
  process.exit(1);
43
45
  }
46
+ // Optional: inventory key for inventory-based operations (LiFi bridges, transferRemote)
47
+ const inventoryPrivateKey = process.env.HYP_INVENTORY_KEY;
44
48
  // Parse optional environment variables
45
49
  let checkFrequency = 60_000;
46
50
  if (process.env.CHECK_FREQUENCY) {
@@ -83,20 +87,39 @@ async function main() {
83
87
  const chainMetadata = await registry.getMetadata();
84
88
  logger.info(`✅ Loaded metadata for ${Object.keys(chainMetadata).length} chains`);
85
89
  // Apply RPC URL overrides from environment variables
86
- const overriddenChains = applyRpcUrlOverridesFromEnv(chainMetadata);
87
- if (overriddenChains.length > 0) {
88
- logger.info({ chains: overriddenChains, count: overriddenChains.length }, 'Applied RPC overrides from environment variables');
89
- }
90
+ applyRpcUrlOverridesFromEnv(chainMetadata);
90
91
  // Create MultiProvider with signer
91
92
  const multiProvider = new MultiProvider(chainMetadata);
92
- const signer = new Wallet(privateKey);
93
- multiProvider.setSharedSigner(signer);
94
- logger.info('✅ Initialized MultiProvider with signer');
95
- // Create MultiProtocolProvider
96
- const multiProtocolProvider = new MultiProtocolProvider(chainMetadata);
97
- logger.info('✅ Initialized MultiProtocolProvider');
93
+ const rebalancerSigner = new Wallet(rebalancerPrivateKey);
94
+ multiProvider.setSharedSigner(rebalancerSigner);
95
+ logger.info({ rebalancerAddress: rebalancerSigner.address }, '✅ Initialized MultiProvider with rebalancer signer');
96
+ // Create inventory MultiProvider if inventory key is provided
97
+ let inventoryMultiProvider;
98
+ if (inventoryPrivateKey) {
99
+ inventoryMultiProvider = new MultiProvider(chainMetadata, {
100
+ providers: multiProvider.providers,
101
+ });
102
+ const inventorySigner = new Wallet(inventoryPrivateKey);
103
+ inventoryMultiProvider.setSharedSigner(inventorySigner);
104
+ // Validate against config.inventorySigner if present
105
+ const inventoryAddress = inventorySigner.address;
106
+ if (rebalancerConfig.inventorySigner &&
107
+ rebalancerConfig.inventorySigner.toLowerCase() !==
108
+ inventoryAddress.toLowerCase()) {
109
+ throw new Error(`inventorySigner mismatch: config has ${rebalancerConfig.inventorySigner} but HYP_INVENTORY_KEY derives to ${inventoryAddress}`);
110
+ }
111
+ logger.info({ inventoryAddress }, '✅ Initialized inventory MultiProvider');
112
+ }
113
+ // Fail fast if config references inventorySigner but no HYP_INVENTORY_KEY is provided
114
+ // Without the matching key, inventory operations would silently use the wrong signer
115
+ if (rebalancerConfig.inventorySigner && !inventoryPrivateKey) {
116
+ logger.error({ inventorySigner: rebalancerConfig.inventorySigner }, 'Config specifies inventorySigner but HYP_INVENTORY_KEY is not set. Provide the key or remove inventorySigner from config.');
117
+ process.exit(1);
118
+ }
119
+ // MultiProtocolProvider will be derived from multiProvider in factory
120
+ const multiProtocolProvider = undefined;
98
121
  // Create the rebalancer service
99
- const service = new RebalancerService(multiProvider, multiProtocolProvider, registry, rebalancerConfig, {
122
+ const service = new RebalancerService(multiProvider, inventoryMultiProvider, multiProtocolProvider, registry, rebalancerConfig, {
100
123
  mode: 'daemon',
101
124
  checkFrequency,
102
125
  monitorOnly,
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type Logger } from 'pino';
2
2
  import type { ChainMap, ChainName, Token } from '@hyperlane-xyz/sdk';
3
- import type { IStrategy, InflightContext, RawBalances, Route, StrategyRoute } from '../interfaces/IStrategy.js';
3
+ import type { IStrategy, InflightContext, RawBalances, Route, RouteWithContext, StrategyRoute } from '../interfaces/IStrategy.js';
4
4
  import { type Metrics } from '../metrics/Metrics.js';
5
5
  import { type BridgeConfig, type BridgeConfigWithOverride } from '../utils/bridgeUtils.js';
6
6
  export type Delta = {
@@ -51,17 +51,23 @@ export declare abstract class BaseStrategy implements IStrategy {
51
51
  */
52
52
  protected reserveCollateral(rawBalances: RawBalances, pendingTransfers: Route[]): RawBalances;
53
53
  /**
54
- * Simulate pending rebalances by adding to destination balances.
54
+ * Simulate pending rebalances based on execution method.
55
55
  *
56
- * Only adds to destination - does NOT subtract from origin because:
57
- * - pendingRebalances only contains in_progress intents (origin tx confirmed)
58
- * - Origin balance is already deducted on-chain
56
+ * For **movable_collateral** (default):
57
+ * - Add full amount to destination (origin already deducted on-chain)
58
+ *
59
+ * For **inventory**:
60
+ * - Simulate the eventual final state as if the entire intent will be fulfilled
61
+ * - Destination: add unfulfilled amount (total - delivered - awaiting)
62
+ * This is what's NOT yet reflected in on-chain balance
63
+ * - Origin: subtract pending amount (total - delivered)
64
+ * This is what WILL decrease when all messages deliver
59
65
  *
60
66
  * @param rawBalances - Current balances (may already have collateral reserved)
61
67
  * @param pendingRebalances - In-flight rebalance operations (in_progress only)
62
68
  * @returns Simulated future balances after rebalances complete
63
69
  */
64
- protected simulatePendingRebalances(rawBalances: RawBalances, pendingRebalances: Route[]): RawBalances;
70
+ protected simulatePendingRebalances(rawBalances: RawBalances, pendingRebalances: RouteWithContext[]): RawBalances;
65
71
  /**
66
72
  * Simulate proposed rebalances by subtracting from origin AND adding to destination.
67
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAE9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,8BAAsB,YAAa,YAAW,SAAS;IACrD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAGrD,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO,EACjB,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAarC,SAAS,CAAC,uBAAuB,CAC/B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,YAAY;IAIf;;OAEG;IACH,oBAAoB,CAClB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE;IA8LlB;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CACvC,QAAQ,EAAE,WAAW,EACrB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAC3B,kBAAkB,CAAC,EAAE,aAAa,EAAE,GACnC;QACD,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,KAAK,EAAE,CAAC;KACnB;IAED;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAoB7D;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CACzB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,KAAK,EAAE,GACxB,WAAW;IAqCd;;;;;;;;;;OAUG;IACH,SAAS,CAAC,yBAAyB,CACjC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,KAAK,EAAE,GACzB,WAAW;IAqCd;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,0BAA0B,CAClC,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,KAAK,EAAE,GAC1B,WAAW;IAyCd,SAAS,CAAC,YAAY,CACpB,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,WAAW,GAC1B,aAAa,EAAE;CA8CnB"}
1
+ {"version":3,"file":"BaseStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAG9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,8BAAsB,YAAa,YAAW,SAAS;IACrD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAGrD,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO,EACjB,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAarC,SAAS,CAAC,uBAAuB,CAC/B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,YAAY;IAIf;;OAEG;IACH,oBAAoB,CAClB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE;IAgMlB;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CACvC,QAAQ,EAAE,WAAW,EACrB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAC3B,kBAAkB,CAAC,EAAE,aAAa,EAAE,GACnC;QACD,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,KAAK,EAAE,CAAC;KACnB;IAED;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAoB7D;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CACzB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,KAAK,EAAE,GACxB,WAAW;IAqCd;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,yBAAyB,CACjC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,WAAW;IAgFd;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,0BAA0B,CAClC,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,KAAK,EAAE,GAC1B,WAAW;IAyCd,SAAS,CAAC,YAAY,CACpB,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,WAAW,GAC1B,aAAa,EAAE;CA8CnB"}
@@ -1,5 +1,5 @@
1
1
  import { toWei } from '@hyperlane-xyz/utils';
2
- import { getBridgeConfig, } from '../utils/bridgeUtils.js';
2
+ import { createStrategyRoute, getBridgeConfig, } from '../utils/bridgeUtils.js';
3
3
  /**
4
4
  * Base abstract class for rebalancing strategies
5
5
  */
@@ -102,13 +102,8 @@ export class BaseStrategy {
102
102
  if (transferAmount > 0n) {
103
103
  // Get bridge config for this route (with destination-specific overrides)
104
104
  const bridgeConfig = this.getBridgeConfigForRoute(surplus.chain, deficit.chain);
105
- // Creates the balancing route
106
- routes.push({
107
- origin: surplus.chain,
108
- destination: deficit.chain,
109
- amount: transferAmount,
110
- bridge: bridgeConfig.bridge,
111
- });
105
+ // Create appropriate route type based on execution type
106
+ routes.push(createStrategyRoute(bridgeConfig, surplus.chain, deficit.chain, transferAmount));
112
107
  }
113
108
  // Decreases the amounts for the following iterations
114
109
  deficit.amount -= transferAmount;
@@ -195,11 +190,17 @@ export class BaseStrategy {
195
190
  return reserved;
196
191
  }
197
192
  /**
198
- * Simulate pending rebalances by adding to destination balances.
193
+ * Simulate pending rebalances based on execution method.
199
194
  *
200
- * Only adds to destination - does NOT subtract from origin because:
201
- * - pendingRebalances only contains in_progress intents (origin tx confirmed)
202
- * - Origin balance is already deducted on-chain
195
+ * For **movable_collateral** (default):
196
+ * - Add full amount to destination (origin already deducted on-chain)
197
+ *
198
+ * For **inventory**:
199
+ * - Simulate the eventual final state as if the entire intent will be fulfilled
200
+ * - Destination: add unfulfilled amount (total - delivered - awaiting)
201
+ * This is what's NOT yet reflected in on-chain balance
202
+ * - Origin: subtract pending amount (total - delivered)
203
+ * This is what WILL decrease when all messages deliver
203
204
  *
204
205
  * @param rawBalances - Current balances (may already have collateral reserved)
205
206
  * @param pendingRebalances - In-flight rebalance operations (in_progress only)
@@ -211,21 +212,55 @@ export class BaseStrategy {
211
212
  }
212
213
  const simulated = { ...rawBalances };
213
214
  for (const rebalance of pendingRebalances) {
214
- // Only add to destination - origin is already deducted on-chain
215
- // (pendingRebalances only contains in_progress intents with confirmed origin tx)
216
- simulated[rebalance.destination] =
217
- (simulated[rebalance.destination] ?? 0n) + rebalance.amount;
218
- this.logger.debug({
219
- context: this.constructor.name,
220
- destination: rebalance.destination,
221
- amount: rebalance.amount.toString(),
222
- }, 'Simulated pending rebalance (destination increase)');
215
+ if (rebalance.executionMethod === 'inventory') {
216
+ // Inventory: simulate eventual final state
217
+ const total = rebalance.amount;
218
+ const delivered = rebalance.deliveredAmount ?? 0n;
219
+ const awaiting = rebalance.awaitingDeliveryAmount ?? 0n;
220
+ // Destination: add unfulfilled amount (total - delivered - awaiting)
221
+ // This is what's NOT yet reflected in on-chain balance
222
+ const destinationAdjustment = total - delivered - awaiting;
223
+ if (destinationAdjustment > 0n) {
224
+ simulated[rebalance.destination] =
225
+ (simulated[rebalance.destination] ?? 0n) + destinationAdjustment;
226
+ this.logger.debug({
227
+ context: this.constructor.name,
228
+ destination: rebalance.destination,
229
+ destinationAdjustment: destinationAdjustment.toString(),
230
+ }, 'Simulated inventory rebalance (destination increase for unfulfilled)');
231
+ }
232
+ // Origin: subtract pending amount (total - delivered)
233
+ // This is what WILL decrease when all messages deliver
234
+ const originAdjustment = total - delivered;
235
+ if (originAdjustment > 0n) {
236
+ simulated[rebalance.origin] =
237
+ (simulated[rebalance.origin] ?? 0n) - originAdjustment;
238
+ this.logger.debug({
239
+ context: this.constructor.name,
240
+ origin: rebalance.origin,
241
+ originAdjustment: originAdjustment.toString(),
242
+ }, 'Simulated inventory rebalance (origin decrease for pending)');
243
+ }
244
+ }
245
+ else {
246
+ // Movable collateral: origin already deducted on-chain, add to destination
247
+ simulated[rebalance.destination] =
248
+ (simulated[rebalance.destination] ?? 0n) + rebalance.amount;
249
+ this.logger.debug({
250
+ context: this.constructor.name,
251
+ destination: rebalance.destination,
252
+ amount: rebalance.amount.toString(),
253
+ }, 'Simulated movable collateral rebalance (destination increase)');
254
+ }
223
255
  }
224
256
  this.logger.info({
225
257
  simulations: pendingRebalances.map((r) => ({
226
258
  from: r.origin,
227
259
  to: r.destination,
228
260
  amount: r.amount.toString(),
261
+ executionMethod: r.executionMethod ?? 'movable_collateral',
262
+ deliveredAmount: r.deliveredAmount?.toString() ?? '0',
263
+ awaitingDeliveryAmount: r.awaitingDeliveryAmount?.toString() ?? '0',
229
264
  })),
230
265
  }, 'Simulated pending rebalances');
231
266
  return simulated;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStrategy.js","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseStrategy.js","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { type ChainMap, type Token } from '@hyperlane-xyz/sdk';
3
3
  import { type CollateralDeficitStrategyConfig, RebalancerStrategyOptions } from '../config/types.js';
4
4
  import type { InflightContext, RawBalances, Route, StrategyRoute } from '../interfaces/IStrategy.js';
5
5
  import { Metrics } from '../metrics/Metrics.js';
6
- import type { BridgeConfigWithOverride } from '../utils/bridgeUtils.js';
6
+ import { type BridgeConfigWithOverride } from '../utils/bridgeUtils.js';
7
7
  import { BaseStrategy, type Delta } from './BaseStrategy.js';
8
8
  /**
9
9
  * Strategy that detects collateral deficits (negative effective balances)
@@ -1 +1 @@
1
- {"version":3,"file":"CollateralDeficitStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/CollateralDeficitStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EACL,KAAK,+BAA+B,EACpC,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;;;GASG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IACzD,QAAQ,CAAC,IAAI,+CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGhC,MAAM,EAAE,+BAA+B,EACvC,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO;IAUnB;;;;;;;OAOG;IACH,SAAS,CAAC,sBAAsB,CAC9B,WAAW,EAAE,WAAW,EACxB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAC3B,kBAAkB,CAAC,EAAE,aAAa,EAAE,GACnC;QACD,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,KAAK,EAAE,CAAC;KACnB;IA4ED;;;;;;OAMG;IACM,oBAAoB,CAC3B,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE;IA0IlB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;;OAMG;IACH,OAAO,CAAC,iCAAiC;IAoCzC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK;CAOxD"}
1
+ {"version":3,"file":"CollateralDeficitStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/CollateralDeficitStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EACL,KAAK,+BAA+B,EACpC,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;;;GASG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IACzD,QAAQ,CAAC,IAAI,+CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGhC,MAAM,EAAE,+BAA+B,EACvC,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO;IAUnB;;;;;;;OAOG;IACH,SAAS,CAAC,sBAAsB,CAC9B,WAAW,EAAE,WAAW,EACxB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAC3B,kBAAkB,CAAC,EAAE,aAAa,EAAE,GACnC;QACD,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,KAAK,EAAE,CAAC;KACnB;IA4ED;;;;;;OAMG;IACM,oBAAoB,CAC3B,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE;IAiJlB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAoCjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;;OAMG;IACH,OAAO,CAAC,iCAAiC;IAoCzC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK;CAOxD"}