@hyperlane-xyz/rebalancer 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) 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 +8 -2
  6. package/dist/config/RebalancerConfig.d.ts.map +1 -1
  7. package/dist/config/RebalancerConfig.js +9 -4
  8. package/dist/config/RebalancerConfig.js.map +1 -1
  9. package/dist/config/RebalancerConfig.test.js +135 -1
  10. package/dist/config/RebalancerConfig.test.js.map +1 -1
  11. package/dist/config/types.d.ts +1023 -304
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +113 -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 +892 -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 +1382 -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 +719 -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 +74 -110
  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/ForkIndexer.d.ts.map +1 -1
  51. package/dist/e2e/harness/ForkIndexer.js +1 -0
  52. package/dist/e2e/harness/ForkIndexer.js.map +1 -1
  53. package/dist/e2e/harness/TestHelpers.d.ts.map +1 -1
  54. package/dist/e2e/harness/TestHelpers.js +1 -4
  55. package/dist/e2e/harness/TestHelpers.js.map +1 -1
  56. package/dist/e2e/harness/TestRebalancer.d.ts +1 -1
  57. package/dist/e2e/harness/TestRebalancer.d.ts.map +1 -1
  58. package/dist/e2e/harness/TestRebalancer.js +9 -9
  59. package/dist/e2e/harness/TestRebalancer.js.map +1 -1
  60. package/dist/e2e/minAmount.e2e-test.js +0 -1
  61. package/dist/e2e/minAmount.e2e-test.js.map +1 -1
  62. package/dist/e2e/weighted.e2e-test.js +0 -1
  63. package/dist/e2e/weighted.e2e-test.js.map +1 -1
  64. package/dist/factories/RebalancerContextFactory.d.ts +48 -6
  65. package/dist/factories/RebalancerContextFactory.d.ts.map +1 -1
  66. package/dist/factories/RebalancerContextFactory.js +171 -17
  67. package/dist/factories/RebalancerContextFactory.js.map +1 -1
  68. package/dist/index.d.ts +6 -6
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +2 -2
  71. package/dist/index.js.map +1 -1
  72. package/dist/interfaces/IExternalBridge.d.ts +101 -0
  73. package/dist/interfaces/IExternalBridge.d.ts.map +1 -0
  74. package/dist/interfaces/IExternalBridge.js +2 -0
  75. package/dist/interfaces/IExternalBridge.js.map +1 -0
  76. package/dist/interfaces/IMonitor.d.ts +1 -0
  77. package/dist/interfaces/IMonitor.d.ts.map +1 -1
  78. package/dist/interfaces/IRebalancer.d.ts +25 -25
  79. package/dist/interfaces/IRebalancer.d.ts.map +1 -1
  80. package/dist/interfaces/IStrategy.d.ts +36 -3
  81. package/dist/interfaces/IStrategy.d.ts.map +1 -1
  82. package/dist/interfaces/IStrategy.js +12 -1
  83. package/dist/interfaces/IStrategy.js.map +1 -1
  84. package/dist/metrics/PriceGetter.js +1 -1
  85. package/dist/metrics/PriceGetter.js.map +1 -1
  86. package/dist/metrics/scripts/metrics.d.ts +3 -3
  87. package/dist/monitor/Monitor.d.ts +12 -2
  88. package/dist/monitor/Monitor.d.ts.map +1 -1
  89. package/dist/monitor/Monitor.js +46 -1
  90. package/dist/monitor/Monitor.js.map +1 -1
  91. package/dist/service.js +40 -17
  92. package/dist/service.js.map +1 -1
  93. package/dist/strategy/BaseStrategy.d.ts +12 -6
  94. package/dist/strategy/BaseStrategy.d.ts.map +1 -1
  95. package/dist/strategy/BaseStrategy.js +56 -21
  96. package/dist/strategy/BaseStrategy.js.map +1 -1
  97. package/dist/strategy/CollateralDeficitStrategy.d.ts +1 -1
  98. package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -1
  99. package/dist/strategy/CollateralDeficitStrategy.js +19 -11
  100. package/dist/strategy/CollateralDeficitStrategy.js.map +1 -1
  101. package/dist/strategy/CollateralDeficitStrategy.test.js +135 -2
  102. package/dist/strategy/CollateralDeficitStrategy.test.js.map +1 -1
  103. package/dist/strategy/CompositeStrategy.test.js +13 -0
  104. package/dist/strategy/CompositeStrategy.test.js.map +1 -1
  105. package/dist/strategy/MinAmountStrategy.test.js +4 -0
  106. package/dist/strategy/MinAmountStrategy.test.js.map +1 -1
  107. package/dist/strategy/StrategyFactory.d.ts +2 -1
  108. package/dist/strategy/StrategyFactory.d.ts.map +1 -1
  109. package/dist/strategy/StrategyFactory.js +24 -8
  110. package/dist/strategy/StrategyFactory.js.map +1 -1
  111. package/dist/strategy/WeightedStrategy.test.js +6 -0
  112. package/dist/strategy/WeightedStrategy.test.js.map +1 -1
  113. package/dist/test/helpers.d.ts +8 -7
  114. package/dist/test/helpers.d.ts.map +1 -1
  115. package/dist/test/helpers.js +23 -5
  116. package/dist/test/helpers.js.map +1 -1
  117. package/dist/test/lifiMocks.d.ts +51 -0
  118. package/dist/test/lifiMocks.d.ts.map +1 -0
  119. package/dist/test/lifiMocks.js +130 -0
  120. package/dist/test/lifiMocks.js.map +1 -0
  121. package/dist/tracking/ActionTracker.d.ts +34 -1
  122. package/dist/tracking/ActionTracker.d.ts.map +1 -1
  123. package/dist/tracking/ActionTracker.js +233 -26
  124. package/dist/tracking/ActionTracker.js.map +1 -1
  125. package/dist/tracking/ActionTracker.test.js +380 -19
  126. package/dist/tracking/ActionTracker.test.js.map +1 -1
  127. package/dist/tracking/IActionTracker.d.ts +48 -3
  128. package/dist/tracking/IActionTracker.d.ts.map +1 -1
  129. package/dist/tracking/InflightContextAdapter.d.ts.map +1 -1
  130. package/dist/tracking/InflightContextAdapter.js +24 -7
  131. package/dist/tracking/InflightContextAdapter.js.map +1 -1
  132. package/dist/tracking/InflightContextAdapter.test.js +7 -4
  133. package/dist/tracking/InflightContextAdapter.test.js.map +1 -1
  134. package/dist/tracking/types.d.ts +33 -2
  135. package/dist/tracking/types.d.ts.map +1 -1
  136. package/dist/utils/ExplorerClient.d.ts +3 -1
  137. package/dist/utils/ExplorerClient.d.ts.map +1 -1
  138. package/dist/utils/ExplorerClient.js +16 -8
  139. package/dist/utils/ExplorerClient.js.map +1 -1
  140. package/dist/utils/bridgeUtils.d.ts +27 -4
  141. package/dist/utils/bridgeUtils.d.ts.map +1 -1
  142. package/dist/utils/bridgeUtils.js +38 -0
  143. package/dist/utils/bridgeUtils.js.map +1 -1
  144. package/dist/utils/bridgeUtils.test.js +9 -0
  145. package/dist/utils/bridgeUtils.test.js.map +1 -1
  146. package/dist/utils/gasEstimation.d.ts +65 -0
  147. package/dist/utils/gasEstimation.d.ts.map +1 -0
  148. package/dist/utils/gasEstimation.js +176 -0
  149. package/dist/utils/gasEstimation.js.map +1 -0
  150. package/dist/utils/tokenUtils.d.ts +9 -1
  151. package/dist/utils/tokenUtils.d.ts.map +1 -1
  152. package/dist/utils/tokenUtils.js +11 -0
  153. package/dist/utils/tokenUtils.js.map +1 -1
  154. package/package.json +9 -7
  155. package/src/bridges/LiFiBridge.ts +538 -0
  156. package/src/config/RebalancerConfig.test.ts +162 -0
  157. package/src/config/RebalancerConfig.ts +21 -3
  158. package/src/config/types.ts +147 -10
  159. package/src/core/InventoryRebalancer.test.ts +1721 -0
  160. package/src/core/InventoryRebalancer.ts +1265 -0
  161. package/src/core/Rebalancer.test.ts +84 -30
  162. package/src/core/Rebalancer.ts +144 -23
  163. package/src/core/RebalancerOrchestrator.test.ts +869 -0
  164. package/src/core/RebalancerOrchestrator.ts +146 -95
  165. package/src/core/RebalancerService.test.ts +86 -124
  166. package/src/core/RebalancerService.ts +67 -33
  167. package/src/e2e/collateral-deficit.e2e-test.ts +2 -4
  168. package/src/e2e/composite.e2e-test.ts +5 -5
  169. package/src/e2e/harness/BridgeSetup.ts +28 -1
  170. package/src/e2e/harness/ForkIndexer.ts +1 -0
  171. package/src/e2e/harness/TestHelpers.ts +1 -4
  172. package/src/e2e/harness/TestRebalancer.ts +10 -7
  173. package/src/e2e/minAmount.e2e-test.ts +1 -2
  174. package/src/e2e/weighted.e2e-test.ts +1 -2
  175. package/src/factories/RebalancerContextFactory.ts +294 -24
  176. package/src/index.ts +22 -5
  177. package/src/interfaces/IExternalBridge.ts +115 -0
  178. package/src/interfaces/IMonitor.ts +1 -0
  179. package/src/interfaces/IRebalancer.ts +45 -29
  180. package/src/interfaces/IStrategy.ts +50 -3
  181. package/src/metrics/PriceGetter.ts +1 -1
  182. package/src/monitor/Monitor.ts +81 -2
  183. package/src/service.ts +59 -18
  184. package/src/strategy/BaseStrategy.ts +77 -24
  185. package/src/strategy/CollateralDeficitStrategy.test.ts +181 -4
  186. package/src/strategy/CollateralDeficitStrategy.ts +42 -15
  187. package/src/strategy/CompositeStrategy.test.ts +13 -0
  188. package/src/strategy/MinAmountStrategy.test.ts +4 -0
  189. package/src/strategy/StrategyFactory.ts +33 -6
  190. package/src/strategy/WeightedStrategy.test.ts +6 -0
  191. package/src/test/helpers.ts +39 -14
  192. package/src/test/lifiMocks.ts +174 -0
  193. package/src/tracking/ActionTracker.test.ts +443 -19
  194. package/src/tracking/ActionTracker.ts +339 -28
  195. package/src/tracking/IActionTracker.ts +59 -3
  196. package/src/tracking/InflightContextAdapter.test.ts +7 -4
  197. package/src/tracking/InflightContextAdapter.ts +42 -9
  198. package/src/tracking/types.ts +45 -2
  199. package/src/utils/ExplorerClient.ts +27 -10
  200. package/src/utils/bridgeUtils.test.ts +9 -0
  201. package/src/utils/bridgeUtils.ts +75 -6
  202. package/src/utils/gasEstimation.ts +272 -0
  203. package/src/utils/tokenUtils.ts +12 -0
  204. package/dist/tracking/index.d.ts +0 -7
  205. package/dist/tracking/index.d.ts.map +0 -1
  206. package/dist/tracking/index.js +0 -6
  207. package/dist/tracking/index.js.map +0 -1
  208. package/dist/utils/index.d.ts +0 -5
  209. package/dist/utils/index.d.ts.map +0 -1
  210. package/dist/utils/index.js +0 -5
  211. package/dist/utils/index.js.map +0 -1
  212. package/src/tracking/index.ts +0 -36
  213. package/src/utils/index.ts +0 -4
@@ -1,20 +1,26 @@
1
1
  import { MultiProtocolCore, MultiProtocolProvider, WarpCore, } from '@hyperlane-xyz/sdk';
2
- import { objMap } from '@hyperlane-xyz/utils';
3
- import { getAllBridges, getStrategyChainNames } from '../config/types.js';
2
+ import { objMap, toWei } from '@hyperlane-xyz/utils';
3
+ import { LiFiBridge } from '../bridges/LiFiBridge.js';
4
+ import { ExecutionType, ExternalBridgeType, getAllBridges, getStrategyChainConfig, getStrategyChainNames, } from '../config/types.js';
5
+ import { InventoryRebalancer } from '../core/InventoryRebalancer.js';
4
6
  import { Rebalancer } from '../core/Rebalancer.js';
7
+ import { RebalancerOrchestrator } from '../core/RebalancerOrchestrator.js';
5
8
  import { Metrics } from '../metrics/Metrics.js';
6
9
  import { PriceGetter } from '../metrics/PriceGetter.js';
7
10
  import { Monitor } from '../monitor/Monitor.js';
8
11
  import { StrategyFactory } from '../strategy/StrategyFactory.js';
9
- import { ActionTracker, InMemoryStore, InflightContextAdapter, } from '../tracking/index.js';
12
+ import { ActionTracker, } from '../tracking/ActionTracker.js';
13
+ import { InflightContextAdapter } from '../tracking/InflightContextAdapter.js';
14
+ import { InMemoryStore } from '../tracking/store/index.js';
10
15
  import { ExplorerClient, } from '../utils/ExplorerClient.js';
11
- import { isCollateralizedTokenEligibleForRebalancing } from '../utils/index.js';
16
+ import { isCollateralizedTokenEligibleForRebalancing } from '../utils/tokenUtils.js';
12
17
  const DEFAULT_EXPLORER_URL = process.env.EXPLORER_API_URL || 'https://explorer4.hasura.app/v1/graphql';
13
18
  export class RebalancerContextFactory {
14
19
  config;
15
20
  warpCore;
16
21
  tokensByChainName;
17
22
  multiProvider;
23
+ inventoryMultiProvider;
18
24
  multiProtocolProvider;
19
25
  registry;
20
26
  logger;
@@ -22,43 +28,63 @@ export class RebalancerContextFactory {
22
28
  * @param config - The rebalancer config
23
29
  * @param warpCore - An instance of `WarpCore` configured for the specified `warpRouteId`.
24
30
  * @param tokensByChainName - A map of chain->token to ease the lookup of token by chain
25
- * @param multiProvider - MultiProvider instance
31
+ * @param multiProvider - MultiProvider instance (for movable collateral operations)
32
+ * @param inventoryMultiProvider - MultiProvider instance for inventory operations (optional)
26
33
  * @param multiProtocolProvider - MultiProtocolProvider instance (with mailbox metadata)
27
34
  * @param registry - IRegistry instance
28
35
  * @param logger - Logger instance
29
36
  */
30
- constructor(config, warpCore, tokensByChainName, multiProvider, multiProtocolProvider, registry, logger) {
37
+ constructor(config, warpCore, tokensByChainName, multiProvider, inventoryMultiProvider, multiProtocolProvider, registry, logger) {
31
38
  this.config = config;
32
39
  this.warpCore = warpCore;
33
40
  this.tokensByChainName = tokensByChainName;
34
41
  this.multiProvider = multiProvider;
42
+ this.inventoryMultiProvider = inventoryMultiProvider;
35
43
  this.multiProtocolProvider = multiProtocolProvider;
36
44
  this.registry = registry;
37
45
  this.logger = logger;
38
46
  }
39
- static async create(config, multiProvider, multiProtocolProvider, registry, logger, warpCoreConfigOverride) {
47
+ /**
48
+ * @param config - The rebalancer config
49
+ * @param multiProvider - MultiProvider instance (for movable collateral operations)
50
+ * @param inventoryMultiProvider - MultiProvider instance for inventory operations (optional)
51
+ * @param multiProtocolProvider - MultiProtocolProvider instance (optional, created from multiProvider if not provided)
52
+ * @param registry - IRegistry instance
53
+ * @param logger - Logger instance
54
+ */
55
+ static async create(config, multiProvider, inventoryMultiProvider, multiProtocolProvider, registry, logger, warpCoreConfigOverride) {
40
56
  logger.debug({
41
57
  warpRouteId: config.warpRouteId,
42
58
  }, 'Creating RebalancerContextFactory');
59
+ // TODO: should we pull addressed for chains we care about, i.e those in the warp config
43
60
  const addresses = await registry.getAddresses();
44
61
  // The Sealevel warp adapters require the Mailbox address, so we
45
62
  // get mailboxes for all chains and merge them with the chain metadata.
46
63
  const mailboxes = objMap(addresses, (_, { mailbox }) => ({ mailbox }));
47
- // Create MultiProtocolProvider (convert from MultiProvider if not provided)
48
- const mpp = multiProtocolProvider ??
49
- MultiProtocolProvider.fromMultiProvider(multiProvider);
50
- const extendedMultiProtocolProvider = mpp.extendChainMetadata(mailboxes);
64
+ // Fetch warp route config FIRST to get chain list
51
65
  const warpCoreConfig = warpCoreConfigOverride ??
52
66
  (await registry.getWarpRoute(config.warpRouteId));
53
67
  if (!warpCoreConfig) {
54
68
  throw new Error(`Warp route config for ${config.warpRouteId} not found in registry`);
55
69
  }
70
+ // Force-initialize providers for all warp route chains
71
+ // This ensures fromMultiProvider() snapshots actual provider instances
72
+ const warpChains = [
73
+ ...new Set(warpCoreConfig.tokens.map((t) => t.chainName)),
74
+ ];
75
+ for (const chain of warpChains) {
76
+ multiProvider.getProvider(chain);
77
+ }
78
+ // Create MultiProtocolProvider (convert from MultiProvider if not provided)
79
+ const mpp = multiProtocolProvider ??
80
+ MultiProtocolProvider.fromMultiProvider(multiProvider);
81
+ const extendedMultiProtocolProvider = mpp.extendChainMetadata(mailboxes);
56
82
  const warpCore = WarpCore.FromConfig(extendedMultiProtocolProvider, warpCoreConfig);
57
83
  const tokensByChainName = Object.fromEntries(warpCore.tokens.map((t) => [t.chainName, t]));
58
84
  logger.debug({
59
85
  warpRouteId: config.warpRouteId,
60
86
  }, 'RebalancerContextFactory created successfully');
61
- return new RebalancerContextFactory(config, warpCore, tokensByChainName, multiProvider, extendedMultiProtocolProvider, registry, logger);
87
+ return new RebalancerContextFactory(config, warpCore, tokensByChainName, multiProvider, inventoryMultiProvider, extendedMultiProtocolProvider, registry, logger);
62
88
  }
63
89
  getWarpCore() {
64
90
  return this.warpCore;
@@ -72,12 +98,12 @@ export class RebalancerContextFactory {
72
98
  const warpDeployConfig = await this.registry.getWarpDeployConfig(this.config.warpRouteId);
73
99
  return new Metrics(tokenPriceGetter, warpDeployConfig, this.warpCore, this.config.warpRouteId, this.logger);
74
100
  }
75
- createMonitor(checkFrequency) {
101
+ createMonitor(checkFrequency, inventoryConfig) {
76
102
  this.logger.debug({
77
103
  warpRouteId: this.config.warpRouteId,
78
104
  checkFrequency: checkFrequency,
79
105
  }, 'Creating Monitor');
80
- return new Monitor(checkFrequency, this.warpCore, this.logger);
106
+ return new Monitor(checkFrequency, this.warpCore, this.logger, inventoryConfig);
81
107
  }
82
108
  async createStrategy(metrics) {
83
109
  const strategyTypes = this.config.strategyConfig.map((s) => s.rebalanceStrategy);
@@ -86,11 +112,25 @@ export class RebalancerContextFactory {
86
112
  strategyTypes,
87
113
  strategyCount: this.config.strategyConfig.length,
88
114
  }, 'Creating Strategy');
89
- return StrategyFactory.createStrategy(this.config.strategyConfig, this.tokensByChainName, await this.getInitialTotalCollateral(), this.logger, metrics);
115
+ // Build minAmountsByChain from chain configs
116
+ const chainNames = getStrategyChainNames(this.config.strategyConfig);
117
+ const minAmountsByChain = {};
118
+ for (const chainName of chainNames) {
119
+ const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
120
+ if (chainConfig?.bridgeMinAcceptedAmount) {
121
+ const token = this.tokensByChainName[chainName];
122
+ const decimals = token?.decimals ?? 18;
123
+ minAmountsByChain[chainName] = BigInt(toWei(chainConfig.bridgeMinAcceptedAmount, decimals));
124
+ }
125
+ }
126
+ this.logger.debug({
127
+ minAmountsByChain: Object.fromEntries(Object.entries(minAmountsByChain).map(([k, v]) => [k, v.toString()])),
128
+ }, 'Built minimum amounts by chain for strategy');
129
+ return StrategyFactory.createStrategy(this.config.strategyConfig, this.tokensByChainName, await this.getInitialTotalCollateral(), this.logger, metrics, minAmountsByChain);
90
130
  }
91
- createRebalancer(metrics) {
131
+ createMovableCollateralRebalancer(actionTracker, metrics) {
92
132
  this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating Rebalancer');
93
- const rebalancer = new Rebalancer(this.warpCore, this.multiProvider.metadata, this.tokensByChainName, this.multiProvider, this.logger, metrics);
133
+ const rebalancer = new Rebalancer(this.warpCore, this.multiProvider.metadata, this.tokensByChainName, this.multiProvider, actionTracker, this.logger, metrics);
94
134
  return rebalancer;
95
135
  }
96
136
  async createActionTracker(explorerUrlOrClient = DEFAULT_EXPLORER_URL) {
@@ -132,6 +172,8 @@ export class RebalancerContextFactory {
132
172
  routersByDomain,
133
173
  bridges,
134
174
  rebalancerAddress,
175
+ inventorySignerAddress: this.config.inventorySigner,
176
+ intentTTL: this.config.intentTTL,
135
177
  };
136
178
  // 6. Create ActionTracker
137
179
  const tracker = new ActionTracker(transferStore, intentStore, actionStore, explorerClient, multiProtocolCore, trackerConfig, this.logger);
@@ -145,6 +187,118 @@ export class RebalancerContextFactory {
145
187
  }, 'ActionTracker created successfully');
146
188
  return { tracker, adapter };
147
189
  }
190
+ /**
191
+ * Creates inventory components for inventory-based rebalancing.
192
+ * Returns null if inventory config is not available.
193
+ *
194
+ * @param actionTracker - ActionTracker instance for tracking inventory actions
195
+ */
196
+ async createInventoryRebalancerAndConfig(actionTracker) {
197
+ const { inventorySigner, externalBridges } = this.config;
198
+ if (!inventorySigner) {
199
+ this.logger.debug('Inventory config not available, skipping inventory components creation');
200
+ return null;
201
+ }
202
+ this.logger.debug({ warpRouteId: this.config.warpRouteId, inventorySigner }, 'Creating inventory components');
203
+ const inventoryChains = getStrategyChainNames(this.config.strategyConfig).filter((chainName) => {
204
+ const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
205
+ return chainConfig?.executionType === ExecutionType.Inventory;
206
+ });
207
+ if (inventoryChains.length === 0) {
208
+ this.logger.debug('No inventory chains configured');
209
+ return null;
210
+ }
211
+ // Build registry dynamically from ExternalBridgeType enum
212
+ const externalBridgeRegistry = {};
213
+ for (const bridgeType of Object.values(ExternalBridgeType)) {
214
+ switch (bridgeType) {
215
+ case ExternalBridgeType.LiFi: {
216
+ const lifiConfig = externalBridges?.lifi;
217
+ if (lifiConfig?.integrator) {
218
+ externalBridgeRegistry[ExternalBridgeType.LiFi] = new LiFiBridge({
219
+ integrator: lifiConfig.integrator,
220
+ defaultSlippage: lifiConfig.defaultSlippage,
221
+ chainMetadata: this.multiProvider.metadata,
222
+ }, this.logger);
223
+ }
224
+ break;
225
+ }
226
+ default: {
227
+ // Exhaustive check - TypeScript will error if new enum value added
228
+ const _exhaustive = bridgeType;
229
+ throw new Error(`Unknown bridge type: ${_exhaustive}`);
230
+ }
231
+ }
232
+ }
233
+ if (Object.keys(externalBridgeRegistry).length === 0) {
234
+ this.logger.debug('No external bridges configured, skipping inventory components');
235
+ return null;
236
+ }
237
+ // 3. Build inventory config
238
+ const inventoryConfig = {
239
+ inventoryAddress: inventorySigner,
240
+ chains: inventoryChains,
241
+ };
242
+ // 4. Create InventoryRebalancer
243
+ // Use inventoryMultiProvider for inventory operations if available, otherwise fall back to multiProvider
244
+ const inventoryRebalancer = new InventoryRebalancer({
245
+ inventorySigner,
246
+ inventoryMultiProvider: this.inventoryMultiProvider,
247
+ inventoryChains,
248
+ }, actionTracker, externalBridgeRegistry, this.warpCore, this.multiProvider, this.logger);
249
+ this.logger.info({
250
+ inventoryChains,
251
+ inventorySigner,
252
+ }, 'Inventory components created successfully');
253
+ return { inventoryRebalancer, externalBridgeRegistry, inventoryConfig };
254
+ }
255
+ /**
256
+ * Creates all rebalancers based on config execution types.
257
+ * Returns an array of rebalancers (movableCollateral and/or inventory)
258
+ * along with metadata needed for monitor and orchestrator.
259
+ */
260
+ async createRebalancers(actionTracker, metrics) {
261
+ const rebalancers = [];
262
+ let externalBridgeRegistry = {};
263
+ let inventoryConfig;
264
+ // Check if any chains use movableCollateral execution type
265
+ const hasMovableCollateral = this.hasMovableCollateralChains();
266
+ if (hasMovableCollateral) {
267
+ const rebalancer = this.createMovableCollateralRebalancer(actionTracker, metrics);
268
+ rebalancers.push(rebalancer);
269
+ }
270
+ // Check if any chains use inventory execution type
271
+ const inventoryComponents = await this.createInventoryRebalancerAndConfig(actionTracker);
272
+ if (inventoryComponents) {
273
+ rebalancers.push(inventoryComponents.inventoryRebalancer);
274
+ externalBridgeRegistry = inventoryComponents.externalBridgeRegistry;
275
+ inventoryConfig = inventoryComponents.inventoryConfig;
276
+ }
277
+ return { rebalancers, externalBridgeRegistry, inventoryConfig };
278
+ }
279
+ /**
280
+ * Creates a RebalancerOrchestrator with all required dependencies.
281
+ */
282
+ createOrchestrator(options) {
283
+ this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating RebalancerOrchestrator');
284
+ return new RebalancerOrchestrator({
285
+ strategy: options.strategy,
286
+ actionTracker: options.actionTracker,
287
+ inflightContextAdapter: options.inflightContextAdapter,
288
+ rebalancerConfig: this.config,
289
+ logger: this.logger,
290
+ rebalancers: options.rebalancers,
291
+ externalBridgeRegistry: options.externalBridgeRegistry,
292
+ metrics: options.metrics,
293
+ });
294
+ }
295
+ hasMovableCollateralChains() {
296
+ return getStrategyChainNames(this.config.strategyConfig).some((chainName) => {
297
+ const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
298
+ return (chainConfig?.executionType === ExecutionType.MovableCollateral ||
299
+ chainConfig?.executionType === undefined); // Default is movableCollateral
300
+ });
301
+ }
148
302
  async getInitialTotalCollateral() {
149
303
  let initialTotalCollateral = 0n;
150
304
  const chainNames = new Set(getStrategyChainNames(this.config.strategyConfig));
@@ -1 +1 @@
1
- {"version":3,"file":"RebalancerContextFactory.js","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RebalancerContextFactory.js","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export { RebalancerService } from './core/RebalancerService.js';
10
10
  export type { RebalancerServiceConfig, ManualRebalanceRequest, } from './core/RebalancerService.js';
11
11
  export { Rebalancer } from './core/Rebalancer.js';
12
12
  export { RebalancerConfig } from './config/RebalancerConfig.js';
13
- export { getStrategyChainConfig, getStrategyChainNames, RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerStrategySchema, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
13
+ export { DEFAULT_INTENT_TTL_MS, DEFAULT_INTENT_TTL_S, getStrategyChainConfig, getStrategyChainNames, RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerStrategySchema, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
14
14
  export type { MinAmountStrategyConfig, RebalancerConfig as RebalancerConfigType, RebalancerConfigFileInput, RebalancerMinAmountChainConfig, RebalancerWeightedChainConfig, StrategyConfig, WeightedStrategyConfig, } from './config/types.js';
15
15
  export { BaseStrategy } from './strategy/BaseStrategy.js';
16
16
  export { CompositeStrategy } from './strategy/CompositeStrategy.js';
@@ -20,18 +20,18 @@ export { StrategyFactory } from './strategy/StrategyFactory.js';
20
20
  export { Monitor } from './monitor/Monitor.js';
21
21
  export { Metrics } from './metrics/Metrics.js';
22
22
  export { PriceGetter } from './metrics/PriceGetter.js';
23
- export type { IRebalancer, PreparedTransaction, RebalanceRoute, RebalanceExecutionResult, } from './interfaces/IRebalancer.js';
24
- export type { IStrategy, StrategyRoute, RawBalances, InflightContext, } from './interfaces/IStrategy.js';
23
+ export type { ExecutionResult, IInventoryRebalancer, IMovableCollateralRebalancer, IRebalancer, InventoryExecutionResult, MovableCollateralExecutionResult, PreparedTransaction, RebalancerType, } from './interfaces/IRebalancer.js';
24
+ export type { IStrategy, InflightContext, InventoryRoute, MovableCollateralRoute, RawBalances, Route, StrategyRoute, } from './interfaces/IStrategy.js';
25
25
  export type { ConfirmedBlockTag, ConfirmedBlockTags, IMonitor, } from './interfaces/IMonitor.js';
26
26
  export { MonitorEventType, MonitorEvent, MonitorPollingError, MonitorStartError, } from './interfaces/IMonitor.js';
27
27
  export type { IMetrics } from './interfaces/IMetrics.js';
28
- export { getBridgeConfig } from './utils/bridgeUtils.js';
29
- export type { BridgeConfigWithOverride, BridgeConfig, } from './utils/bridgeUtils.js';
28
+ export { getBridgeConfig, isMovableCollateralConfig, isInventoryConfig, } from './utils/bridgeUtils.js';
29
+ export type { BridgeConfigWithOverride, BridgeConfig, MovableCollateralBridgeConfig, InventoryBridgeConfig, } from './utils/bridgeUtils.js';
30
30
  export { getRawBalances } from './utils/balanceUtils.js';
31
31
  export { isCollateralizedTokenEligibleForRebalancing } from './utils/tokenUtils.js';
32
32
  export { ExplorerClient } from './utils/ExplorerClient.js';
33
33
  export { InflightContextAdapter } from './tracking/InflightContextAdapter.js';
34
34
  export type { IActionTracker, CreateRebalanceIntentParams, CreateRebalanceActionParams, } from './tracking/IActionTracker.js';
35
- export type { Transfer, RebalanceIntent, RebalanceAction, } from './tracking/types.js';
35
+ export type { Transfer, RebalanceIntent, RebalanceAction, ActionType, PartialInventoryIntent, } from './tracking/types.js';
36
36
  export { RebalancerContextFactory } from './factories/RebalancerContextFactory.js';
37
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,uBAAuB,EACvB,gBAAgB,IAAI,oBAAoB,EACxC,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,cAAc,EACd,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,uBAAuB,EACvB,gBAAgB,IAAI,oBAAoB,EACxC,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,cAAc,EACd,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,4BAA4B,EAC5B,WAAW,EACX,wBAAwB,EACxB,gCAAgC,EAChC,mBAAmB,EACnB,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,KAAK,EACL,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,wBAAwB,EACxB,YAAY,EACZ,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAU,EACV,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ export { RebalancerService } from './core/RebalancerService.js';
12
12
  export { Rebalancer } from './core/Rebalancer.js';
13
13
  // Configuration
14
14
  export { RebalancerConfig } from './config/RebalancerConfig.js';
15
- export { getStrategyChainConfig, getStrategyChainNames, RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerStrategySchema, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
15
+ export { DEFAULT_INTENT_TTL_MS, DEFAULT_INTENT_TTL_S, getStrategyChainConfig, getStrategyChainNames, RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerStrategySchema, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
16
16
  // Strategy
17
17
  export { BaseStrategy } from './strategy/BaseStrategy.js';
18
18
  export { CompositeStrategy } from './strategy/CompositeStrategy.js';
@@ -26,7 +26,7 @@ export { Metrics } from './metrics/Metrics.js';
26
26
  export { PriceGetter } from './metrics/PriceGetter.js';
27
27
  export { MonitorEventType, MonitorPollingError, MonitorStartError, } from './interfaces/IMonitor.js';
28
28
  // Utils
29
- export { getBridgeConfig } from './utils/bridgeUtils.js';
29
+ export { getBridgeConfig, isMovableCollateralConfig, isInventoryConfig, } from './utils/bridgeUtils.js';
30
30
  export { getRawBalances } from './utils/balanceUtils.js';
31
31
  export { isCollateralizedTokenEligibleForRebalancing } from './utils/tokenUtils.js';
32
32
  export { ExplorerClient } from './utils/ExplorerClient.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAW3B,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAoBvD,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAGlC,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAY9E,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAW3B,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA2BvD,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAGlC,QAAQ;AACR,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAc9E,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1,101 @@
1
+ import type { Logger } from 'pino';
2
+ import type { ChainMap, ChainMetadata } from '@hyperlane-xyz/sdk';
3
+ import type { ExternalBridgeType } from '../config/types.js';
4
+ /**
5
+ * Configuration for an external bridge.
6
+ */
7
+ export interface ExternalBridgeConfig {
8
+ integrator: string;
9
+ apiKey?: string;
10
+ defaultSlippage?: number;
11
+ chainMetadata?: ChainMap<ChainMetadata>;
12
+ }
13
+ /**
14
+ * Parameters for requesting a bridge quote.
15
+ * Either fromAmount OR toAmount must be provided (mutually exclusive).
16
+ * - fromAmount: "I'm sending X, what do I get?" (standard quote)
17
+ * - toAmount: "I want X on destination, how much do I send?" (reverse quote)
18
+ */
19
+ export interface BridgeQuoteParams {
20
+ fromChain: number;
21
+ toChain: number;
22
+ fromToken: string;
23
+ toToken: string;
24
+ fromAmount?: bigint;
25
+ toAmount?: bigint;
26
+ fromAddress: string;
27
+ toAddress?: string;
28
+ slippage?: number;
29
+ }
30
+ /**
31
+ * Quote response from a bridge.
32
+ */
33
+ export interface BridgeQuote {
34
+ id: string;
35
+ tool: string;
36
+ fromAmount: bigint;
37
+ toAmount: bigint;
38
+ toAmountMin: bigint;
39
+ executionDuration: number;
40
+ gasCosts: bigint;
41
+ feeCosts: bigint;
42
+ route: unknown;
43
+ }
44
+ /**
45
+ * Result of executing a bridge transfer.
46
+ */
47
+ export interface BridgeTransferResult {
48
+ txHash: string;
49
+ fromChain: number;
50
+ toChain: number;
51
+ transferId?: string;
52
+ }
53
+ /**
54
+ * Status of a bridge transfer.
55
+ */
56
+ export type BridgeTransferStatus = {
57
+ status: 'pending';
58
+ substatus?: string;
59
+ } | {
60
+ status: 'complete';
61
+ receivingTxHash: string;
62
+ receivedAmount: bigint;
63
+ } | {
64
+ status: 'failed';
65
+ error?: string;
66
+ } | {
67
+ status: 'not_found';
68
+ };
69
+ /**
70
+ * Interface for external bridge implementations (e.g., LiFi, Socket).
71
+ *
72
+ * External bridges are used for inventory rebalancing when chains don't support
73
+ * MovableCollateralRouter. The flow is:
74
+ * 1. quote() - Get a quote for bridging tokens
75
+ * 2. execute() - Execute the bridge transfer
76
+ * 3. getStatus() - Poll for transfer completion
77
+ */
78
+ export interface IExternalBridge {
79
+ readonly externalBridgeId: string;
80
+ readonly logger: Logger;
81
+ getNativeTokenAddress?(): string;
82
+ quote(params: BridgeQuoteParams): Promise<BridgeQuote>;
83
+ /**
84
+ * Execute a bridge transfer using a previously obtained quote.
85
+ * @param quote - Quote obtained from quote()
86
+ * @param privateKey - Private key hex string (0x-prefixed) for signing the transaction
87
+ */
88
+ execute(quote: BridgeQuote, privateKey: string): Promise<BridgeTransferResult>;
89
+ /**
90
+ * Get the status of a bridge transfer.
91
+ * @param txHash - Origin chain transaction hash
92
+ * @param fromChain - Source chain ID
93
+ * @param toChain - Destination chain ID
94
+ */
95
+ getStatus(txHash: string, fromChain: number, toChain: number): Promise<BridgeTransferStatus>;
96
+ }
97
+ /**
98
+ * Registry mapping external bridge types to their implementations.
99
+ */
100
+ export type ExternalBridgeRegistry = Record<ExternalBridgeType, IExternalBridge>;
101
+ //# sourceMappingURL=IExternalBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IExternalBridge.d.ts","sourceRoot":"","sources":["../../src/interfaces/IExternalBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CACzC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,qBAAqB,CAAC,IAAI,MAAM,CAAC;IAEjC,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEvD;;;;OAIG;IACH,OAAO,CACL,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,kBAAkB,EAClB,eAAe,CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IExternalBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IExternalBridge.js","sourceRoot":"","sources":["../../src/interfaces/IExternalBridge.ts"],"names":[],"mappings":""}
@@ -19,6 +19,7 @@ export type MonitorEvent = {
19
19
  bridgedSupply?: bigint;
20
20
  }[];
21
21
  confirmedBlockTags: ConfirmedBlockTags;
22
+ inventoryBalances?: ChainMap<bigint>;
22
23
  };
23
24
  /**
24
25
  * Interface for a monitoring service that tracks token information across different chains.
@@ -1 +1 @@
1
- {"version":3,"file":"IMonitor.d.ts","sourceRoot":"","sources":["../../src/interfaces/IMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,2BAA2B,EAC3B,KAAK,KAAK,EACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAuB;CAC5B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,IAAI,SAAyB;CAC9B;AAED,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,2BAA2B,GAC3B,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,EAAE,CACA,SAAS,EAAE,gBAAgB,CAAC,SAAS,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI,CAAC;IAER;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAExE;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
1
+ {"version":3,"file":"IMonitor.d.ts","sourceRoot":"","sources":["../../src/interfaces/IMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,2BAA2B,EAC3B,KAAK,KAAK,EACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAuB;CAC5B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,IAAI,SAAyB;CAC9B;AAED,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,2BAA2B,GAC3B,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,EAAE,CACA,SAAS,EAAE,gBAAgB,CAAC,SAAS,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI,CAAC;IAER;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAExE;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
@@ -1,31 +1,31 @@
1
1
  import { type EvmMovableCollateralAdapter, type TokenAmount } from '@hyperlane-xyz/sdk';
2
- import type { StrategyRoute } from './IStrategy.js';
3
- /**
4
- * RebalanceRoute extends StrategyRoute with a required intentId for tracking.
5
- * The intentId is assigned by RebalancerService before execution and links
6
- * to the corresponding RebalanceIntent in the tracking system.
7
- */
8
- export type RebalanceRoute = StrategyRoute & {
9
- /** Links to the RebalanceIntent that this route fulfills */
10
- intentId: string;
11
- };
2
+ import { type InventoryRoute, type MovableCollateralRoute, type Route } from './IStrategy.js';
3
+ export type RebalancerType = 'movableCollateral' | 'inventory';
4
+ export interface ExecutionResult<R extends Route = Route> {
5
+ route: R;
6
+ success: boolean;
7
+ error?: string;
8
+ txHash?: string;
9
+ reason?: string;
10
+ }
11
+ export interface MovableCollateralExecutionResult extends ExecutionResult<MovableCollateralRoute> {
12
+ messageId: string;
13
+ }
14
+ export interface InventoryExecutionResult extends ExecutionResult<InventoryRoute> {
15
+ messageId?: string;
16
+ amountSent?: bigint;
17
+ }
18
+ export interface IRebalancer<R extends Route = Route, E extends ExecutionResult<R> = ExecutionResult<R>> {
19
+ readonly rebalancerType: RebalancerType;
20
+ rebalance(routes: R[]): Promise<E[]>;
21
+ }
22
+ export type IMovableCollateralRebalancer = IRebalancer<MovableCollateralRoute, MovableCollateralExecutionResult>;
23
+ export type IInventoryRebalancer = IRebalancer<InventoryRoute, InventoryExecutionResult>;
12
24
  export type PreparedTransaction = {
13
25
  populatedTx: Awaited<ReturnType<EvmMovableCollateralAdapter['populateRebalanceTx']>>;
14
- route: RebalanceRoute;
26
+ route: MovableCollateralRoute & {
27
+ intentId: string;
28
+ };
15
29
  originTokenAmount: TokenAmount;
16
30
  };
17
- export type RebalanceMetrics = {
18
- route: RebalanceRoute;
19
- originTokenAmount: TokenAmount;
20
- };
21
- export type RebalanceExecutionResult = {
22
- route: RebalanceRoute;
23
- success: boolean;
24
- messageId?: string;
25
- txHash?: string;
26
- error?: string;
27
- };
28
- export interface IRebalancer {
29
- rebalance(routes: RebalanceRoute[]): Promise<RebalanceExecutionResult[]>;
30
- }
31
31
  //# sourceMappingURL=IRebalancer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IRebalancer.d.ts","sourceRoot":"","sources":["../../src/interfaces/IRebalancer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,OAAO,CAClB,UAAU,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,CAAC,CAC/D,CAAC;IACF,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;CAC1E"}
1
+ {"version":3,"file":"IRebalancer.d.ts","sourceRoot":"","sources":["../../src/interfaces/IRebalancer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,KAAK,EACX,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IACtD,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gCAAiC,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAC/F,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAEjD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,4BAA4B,GAAG,WAAW,CACpD,sBAAsB,EACtB,gCAAgC,CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAC5C,cAAc,EACd,wBAAwB,CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,OAAO,CAClB,UAAU,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,CAAC,CAC/D,CAAC;IACF,KAAK,EAAE,sBAAsB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC"}