@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":"ActionTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/ActionTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/ActionTracker.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export class ActionTracker {
35
35
  bridges: this.config.bridges,
36
36
  routersByDomain: this.config.routersByDomain,
37
37
  rebalancerAddress: this.config.rebalancerAddress,
38
+ inventorySignerAddress: this.config.inventorySignerAddress,
38
39
  }, this.logger);
39
40
  this.logger.info({ count: inflightMessages.length }, 'Found inflight rebalance messages during startup');
40
41
  // 2. For each message, create synthetic intent + action
@@ -52,9 +53,14 @@ export class ActionTracker {
52
53
  // === Sync Operations ===
53
54
  async syncTransfers(confirmedBlockTags) {
54
55
  this.logger.debug('Syncing transfers');
56
+ // Build list of addresses to exclude (rebalancer + optional inventory signer)
57
+ const excludeTxSenders = [this.config.rebalancerAddress];
58
+ if (this.config.inventorySignerAddress) {
59
+ excludeTxSenders.push(this.config.inventorySignerAddress);
60
+ }
55
61
  const inflightMessages = await this.explorerClient.getInflightUserTransfers({
56
62
  routersByDomain: this.config.routersByDomain,
57
- excludeTxSender: this.config.rebalancerAddress,
63
+ excludeTxSenders,
58
64
  }, this.logger);
59
65
  this.logger.debug({ count: inflightMessages.length }, 'Received inflight user transfers from Explorer');
60
66
  let newTransfers = 0;
@@ -120,10 +126,11 @@ export class ActionTracker {
120
126
  }
121
127
  async syncRebalanceIntents() {
122
128
  this.logger.debug('Syncing rebalance intents');
123
- // Check in_progress intents for completion
129
+ // Check in_progress intents for completion by deriving from action states
124
130
  const inProgressIntents = await this.rebalanceIntentStore.getByStatus('in_progress');
125
131
  for (const intent of inProgressIntents) {
126
- if (intent.fulfilledAmount >= intent.amount) {
132
+ const completedAmount = await this.getCompletedAmountForIntent(intent.id);
133
+ if (completedAmount >= intent.amount) {
127
134
  await this.rebalanceIntentStore.update(intent.id, {
128
135
  status: 'complete',
129
136
  });
@@ -140,6 +147,7 @@ export class ActionTracker {
140
147
  bridges: this.config.bridges,
141
148
  routersByDomain: this.config.routersByDomain,
142
149
  rebalancerAddress: this.config.rebalancerAddress,
150
+ inventorySignerAddress: this.config.inventorySignerAddress,
143
151
  }, this.logger);
144
152
  this.logger.debug({ count: inflightMessages.length }, 'Found inflight rebalance actions from Explorer');
145
153
  const allActions = await this.rebalanceActionStore.getAll();
@@ -155,8 +163,15 @@ export class ActionTracker {
155
163
  discoveredActions++;
156
164
  }
157
165
  }
166
+ // Check delivery status for all in-progress actions in our store
167
+ // Only check delivery for actions that have a messageId (rebalance_message, inventory_deposit)
168
+ // inventory_movement actions are synced separately via LiFi status API
158
169
  const inProgressActions = await this.rebalanceActionStore.getByStatus('in_progress');
159
170
  for (const action of inProgressActions) {
171
+ // Skip actions without messageId (e.g., inventory_movement)
172
+ if (!action.messageId) {
173
+ continue;
174
+ }
160
175
  const blockTag = await this.getConfirmedBlockTag(action.destination, confirmedBlockTags);
161
176
  const delivered = await this.isMessageDelivered(action.messageId, action.destination, blockTag);
162
177
  if (delivered) {
@@ -202,15 +217,21 @@ export class ActionTracker {
202
217
  origin: params.origin,
203
218
  destination: params.destination,
204
219
  amount: params.amount,
205
- fulfilledAmount: 0n,
206
220
  bridge: params.bridge,
207
221
  priority: params.priority,
208
222
  strategyType: params.strategyType,
223
+ executionMethod: params.executionMethod,
224
+ externalBridge: params.externalBridge,
209
225
  createdAt: Date.now(),
210
226
  updatedAt: Date.now(),
211
227
  };
212
228
  await this.rebalanceIntentStore.save(intent);
213
- this.logger.debug({ id: intent.id, origin: intent.origin, destination: intent.destination }, 'Created RebalanceIntent');
229
+ this.logger.debug({
230
+ id: intent.id,
231
+ origin: intent.origin,
232
+ destination: intent.destination,
233
+ executionMethod: intent.executionMethod,
234
+ }, 'Created RebalanceIntent');
214
235
  return intent;
215
236
  }
216
237
  async completeRebalanceIntent(id) {
@@ -237,9 +258,12 @@ export class ActionTracker {
237
258
  const action = {
238
259
  id: uuidv4(),
239
260
  status: 'in_progress',
261
+ type: params.type,
240
262
  intentId: params.intentId,
241
263
  messageId: params.messageId,
242
264
  txHash: params.txHash,
265
+ externalBridgeTransferId: params.externalBridgeTransferId,
266
+ externalBridgeId: params.externalBridgeId,
243
267
  origin: params.origin,
244
268
  destination: params.destination,
245
269
  amount: params.amount,
@@ -255,7 +279,7 @@ export class ActionTracker {
255
279
  });
256
280
  this.logger.debug({ intentId: intent.id }, 'Transitioned RebalanceIntent to in_progress');
257
281
  }
258
- this.logger.debug({ id: action.id, intentId: action.intentId }, 'Created RebalanceAction');
282
+ this.logger.debug({ id: action.id, intentId: action.intentId, type: action.type }, 'Created RebalanceAction');
259
283
  return action;
260
284
  }
261
285
  async completeRebalanceAction(id) {
@@ -264,26 +288,173 @@ export class ActionTracker {
264
288
  throw new Error(`RebalanceAction ${id} not found`);
265
289
  }
266
290
  await this.rebalanceActionStore.update(id, { status: 'complete' });
267
- // Update parent intent's fulfilledAmount
268
- const intent = await this.rebalanceIntentStore.get(action.intentId);
269
- if (intent) {
270
- const newFulfilledAmount = intent.fulfilledAmount + action.amount;
271
- const updates = {
272
- fulfilledAmount: newFulfilledAmount,
273
- };
274
- // Check if intent is now complete
275
- if (newFulfilledAmount >= intent.amount) {
276
- updates.status = 'complete';
277
- this.logger.debug({ intentId: intent.id }, 'RebalanceIntent fully fulfilled');
278
- }
279
- await this.rebalanceIntentStore.update(intent.id, updates);
291
+ // Check if parent intent is now complete (derive from action states)
292
+ await this.checkAndCompleteIntent(action.intentId);
293
+ this.logger.info({ id, intentId: action.intentId, type: action.type }, 'Action completed');
294
+ }
295
+ /**
296
+ * Check if an intent is fully fulfilled based on completed action amounts.
297
+ * Only `inventory_deposit` and `rebalance_message` actions count toward fulfillment.
298
+ */
299
+ async checkAndCompleteIntent(intentId) {
300
+ const intent = await this.rebalanceIntentStore.get(intentId);
301
+ if (!intent || intent.status === 'complete')
302
+ return;
303
+ const completedAmount = await this.getCompletedAmountForIntent(intentId);
304
+ if (completedAmount >= intent.amount) {
305
+ await this.rebalanceIntentStore.update(intentId, { status: 'complete' });
306
+ this.logger.debug({ intentId, completedAmount: completedAmount.toString() }, 'RebalanceIntent fully fulfilled');
280
307
  }
281
- this.logger.info({ id, intentId: action.intentId }, 'Action completed');
308
+ }
309
+ /**
310
+ * Get the total completed amount for an intent from its actions.
311
+ * Only `inventory_deposit` and `rebalance_message` actions count.
312
+ */
313
+ async getCompletedAmountForIntent(intentId) {
314
+ const actions = await this.getActionsForIntent(intentId);
315
+ return actions
316
+ .filter((a) => a.status === 'complete' &&
317
+ (a.type === 'inventory_deposit' || a.type === 'rebalance_message'))
318
+ .reduce((sum, a) => sum + a.amount, 0n);
282
319
  }
283
320
  async failRebalanceAction(id) {
284
321
  await this.rebalanceActionStore.update(id, { status: 'failed' });
285
322
  this.logger.info({ id }, 'Action failed');
286
323
  }
324
+ // === RebalanceAction Queries ===
325
+ async getActionsByType(type) {
326
+ const allActions = await this.rebalanceActionStore.getAll();
327
+ return allActions.filter((action) => action.type === type);
328
+ }
329
+ async getInflightInventoryMovements(origin) {
330
+ const allActions = await this.rebalanceActionStore.getAll();
331
+ const inflightMovements = allActions.filter((action) => action.type === 'inventory_movement' &&
332
+ action.status === 'in_progress' &&
333
+ action.origin === origin);
334
+ return inflightMovements.reduce((sum, action) => sum + action.amount, BigInt(0));
335
+ }
336
+ /**
337
+ * Get inventory intents that are in_progress or not_started but not fully fulfilled,
338
+ * and have no in-flight actions (safe to continue).
339
+ * Returns enriched data with computed values derived from action states.
340
+ *
341
+ * NOTE: We include 'not_started' intents because they may have been created
342
+ * but failed to execute (e.g., all bridges failed viability check). Without
343
+ * checking for these, we would create duplicate intents every polling cycle.
344
+ */
345
+ async getPartiallyFulfilledInventoryIntents() {
346
+ // Query both in_progress AND not_started intents
347
+ // not_started intents may exist if execution failed before any action was created
348
+ const [inProgressIntents, notStartedIntents] = await Promise.all([
349
+ this.rebalanceIntentStore.getByStatus('in_progress'),
350
+ this.rebalanceIntentStore.getByStatus('not_started'),
351
+ ]);
352
+ const allActiveIntents = [...inProgressIntents, ...notStartedIntents];
353
+ const partialIntents = [];
354
+ for (const intent of allActiveIntents) {
355
+ // Only inventory execution method
356
+ if (intent.executionMethod !== 'inventory')
357
+ continue;
358
+ const actions = await this.getActionsForIntent(intent.id);
359
+ // Check for in-flight inventory_movement actions
360
+ // Skip intents that have a bridge in progress - wait for it to complete
361
+ const hasInflightMovement = actions.some((a) => a.status === 'in_progress' && a.type === 'inventory_movement');
362
+ if (hasInflightMovement) {
363
+ this.logger.debug({ intentId: intent.id }, 'Skipping partial intent - has in-flight inventory movement');
364
+ continue;
365
+ }
366
+ // Compute amounts from action states
367
+ const completedAmount = actions
368
+ .filter((a) => a.status === 'complete' && a.type === 'inventory_deposit')
369
+ .reduce((sum, a) => sum + a.amount, 0n);
370
+ const inflightAmount = actions
371
+ .filter((a) => a.status === 'in_progress' && a.type === 'inventory_deposit')
372
+ .reduce((sum, a) => sum + a.amount, 0n);
373
+ const remaining = intent.amount - completedAmount - inflightAmount;
374
+ // Safe to continue if: remaining > 0 AND no in-flight inventory_deposit
375
+ if (remaining > 0n && inflightAmount === 0n) {
376
+ partialIntents.push({ intent, completedAmount, remaining });
377
+ }
378
+ }
379
+ return partialIntents;
380
+ }
381
+ /**
382
+ * Get all actions associated with a specific intent.
383
+ */
384
+ async getActionsForIntent(intentId) {
385
+ const allActions = await this.rebalanceActionStore.getAll();
386
+ return allActions.filter((a) => a.intentId === intentId);
387
+ }
388
+ async syncInventoryMovementActions(externalBridgeRegistry) {
389
+ this.logger.debug('Syncing inventory movement actions');
390
+ let completed = 0;
391
+ let failed = 0;
392
+ // Get all in-progress inventory_movement actions
393
+ const inProgressActions = await this.rebalanceActionStore.getByStatus('in_progress');
394
+ const inventoryMovements = inProgressActions.filter((a) => a.type === 'inventory_movement');
395
+ this.logger.debug({ count: inventoryMovements.length }, 'Found in-progress inventory movements');
396
+ for (const action of inventoryMovements) {
397
+ // Skip if no txHash (shouldn't happen but be safe)
398
+ if (!action.txHash) {
399
+ this.logger.warn({ actionId: action.id }, 'Inventory movement action has no txHash');
400
+ continue;
401
+ }
402
+ // Skip if no externalBridgeId (shouldn't happen but be safe)
403
+ if (!action.externalBridgeId) {
404
+ this.logger.warn({ actionId: action.id }, 'Inventory movement action has no externalBridgeId');
405
+ continue;
406
+ }
407
+ const externalBridge = externalBridgeRegistry[action.externalBridgeId];
408
+ if (!externalBridge) {
409
+ this.logger.warn({ actionId: action.id, bridgeId: action.externalBridgeId }, 'Bridge not found in registry');
410
+ continue;
411
+ }
412
+ try {
413
+ const status = await externalBridge.getStatus(action.txHash, action.origin, action.destination);
414
+ if (status.status === 'complete') {
415
+ await this.completeRebalanceAction(action.id);
416
+ completed++;
417
+ this.logger.info({
418
+ actionId: action.id,
419
+ txHash: action.txHash,
420
+ receivedAmount: status.receivedAmount?.toString(),
421
+ }, 'Inventory movement completed');
422
+ }
423
+ else if (status.status === 'failed') {
424
+ await this.failRebalanceAction(action.id);
425
+ failed++;
426
+ this.logger.warn({
427
+ actionId: action.id,
428
+ txHash: action.txHash,
429
+ error: status.error,
430
+ }, 'Inventory movement failed');
431
+ }
432
+ else if (status.status === 'pending') {
433
+ this.logger.debug({
434
+ actionId: action.id,
435
+ txHash: action.txHash,
436
+ substatus: status.substatus,
437
+ }, 'Inventory movement still pending');
438
+ }
439
+ // status === 'not_found' - wait for next cycle
440
+ }
441
+ catch (error) {
442
+ this.logger.debug({
443
+ actionId: action.id,
444
+ txHash: action.txHash,
445
+ error: error.message,
446
+ }, 'Failed to get inventory movement status');
447
+ }
448
+ }
449
+ if (inventoryMovements.length > 0) {
450
+ this.logger.info({
451
+ completed,
452
+ failed,
453
+ pending: inventoryMovements.length - completed - failed,
454
+ }, 'Inventory movements synced');
455
+ }
456
+ return { completed, failed };
457
+ }
287
458
  // === Debug Helpers ===
288
459
  /**
289
460
  * Log the contents of all stores.
@@ -391,7 +562,6 @@ export class ActionTracker {
391
562
  origin: msg.origin_domain_id,
392
563
  destination: msg.destination_domain_id,
393
564
  amount,
394
- fulfilledAmount: 0n,
395
565
  priority: undefined,
396
566
  strategyType: undefined,
397
567
  createdAt: Date.now(),
@@ -399,10 +569,11 @@ export class ActionTracker {
399
569
  };
400
570
  await this.rebalanceIntentStore.save(intent);
401
571
  this.logger.debug({ id: intent.id, amount: amount.toString() }, 'Created synthetic RebalanceIntent');
402
- // Create action
572
+ // Create action (recovered actions are always rebalance_message type)
403
573
  const action = {
404
574
  id: msg.msg_id,
405
575
  status: 'in_progress',
576
+ type: 'rebalance_message',
406
577
  intentId: intent.id,
407
578
  messageId: msg.msg_id,
408
579
  txHash: msg.origin_tx_hash,
@@ -1 +1 @@
1
- {"version":3,"file":"ActionTracker.js","sourceRoot":"","sources":["../../src/tracking/ActionTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionTracker.js","sourceRoot":"","sources":["../../src/tracking/ActionTracker.ts"],"names":[],"mappings":"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"}