@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 +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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"}
@@ -1,5 +1,5 @@
1
1
  import { v4 as uuidv4 } from 'uuid';
2
- import { parseWarpRouteMessage } from '@hyperlane-xyz/utils';
2
+ import { assert, parseWarpRouteMessage } from '@hyperlane-xyz/utils';
3
3
  import { getConfirmedBlockTag } from '../utils/blockTag.js';
4
4
  /**
5
5
  * ActionTracker implementation managing the lifecycle of tracked entities.
@@ -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,15 +126,41 @@ 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 or TTL expiry
124
130
  const inProgressIntents = await this.rebalanceIntentStore.getByStatus('in_progress');
131
+ const allInProgressActions = await this.rebalanceActionStore.getByStatus('in_progress');
132
+ const now = Date.now();
125
133
  for (const intent of inProgressIntents) {
126
- if (intent.fulfilledAmount >= intent.amount) {
134
+ const completedAmount = await this.getCompletedAmountForIntent(intent.id);
135
+ if (completedAmount >= intent.amount) {
127
136
  await this.rebalanceIntentStore.update(intent.id, {
128
137
  status: 'complete',
129
138
  });
130
139
  this.logger.debug({ id: intent.id }, 'RebalanceIntent completed');
131
140
  }
141
+ else if (now - intent.createdAt > this.config.intentTTL) {
142
+ await this.rebalanceIntentStore.update(intent.id, {
143
+ status: 'failed',
144
+ });
145
+ // Fail any in-progress actions associated with the expired intent
146
+ for (const action of allInProgressActions) {
147
+ if (action.intentId === intent.id) {
148
+ await this.rebalanceActionStore.update(action.id, {
149
+ status: 'failed',
150
+ });
151
+ this.logger.warn({ actionId: action.id, intentId: intent.id }, 'RebalanceAction failed due to parent intent TTL expiry');
152
+ }
153
+ }
154
+ this.logger.debug({
155
+ id: intent.id,
156
+ origin: intent.origin,
157
+ destination: intent.destination,
158
+ amount: intent.amount.toString(),
159
+ ageMs: now - intent.createdAt,
160
+ ttlMs: this.config.intentTTL,
161
+ }, 'RebalanceIntent TTL expiry details');
162
+ this.logger.warn({ id: intent.id }, 'RebalanceIntent expired due to TTL');
163
+ }
132
164
  }
133
165
  this.logger.debug('Rebalance intents synced');
134
166
  }
@@ -140,6 +172,7 @@ export class ActionTracker {
140
172
  bridges: this.config.bridges,
141
173
  routersByDomain: this.config.routersByDomain,
142
174
  rebalancerAddress: this.config.rebalancerAddress,
175
+ inventorySignerAddress: this.config.inventorySignerAddress,
143
176
  }, this.logger);
144
177
  this.logger.debug({ count: inflightMessages.length }, 'Found inflight rebalance actions from Explorer');
145
178
  const allActions = await this.rebalanceActionStore.getAll();
@@ -155,8 +188,15 @@ export class ActionTracker {
155
188
  discoveredActions++;
156
189
  }
157
190
  }
191
+ // Check delivery status for all in-progress actions in our store
192
+ // Only check delivery for actions that have a messageId (rebalance_message, inventory_deposit)
193
+ // inventory_movement actions are synced separately via LiFi status API
158
194
  const inProgressActions = await this.rebalanceActionStore.getByStatus('in_progress');
159
195
  for (const action of inProgressActions) {
196
+ // Skip actions without messageId (e.g., inventory_movement)
197
+ if (!action.messageId) {
198
+ continue;
199
+ }
160
200
  const blockTag = await this.getConfirmedBlockTag(action.destination, confirmedBlockTags);
161
201
  const delivered = await this.isMessageDelivered(action.messageId, action.destination, blockTag);
162
202
  if (delivered) {
@@ -202,15 +242,21 @@ export class ActionTracker {
202
242
  origin: params.origin,
203
243
  destination: params.destination,
204
244
  amount: params.amount,
205
- fulfilledAmount: 0n,
206
245
  bridge: params.bridge,
207
246
  priority: params.priority,
208
247
  strategyType: params.strategyType,
248
+ executionMethod: params.executionMethod,
249
+ externalBridge: params.externalBridge,
209
250
  createdAt: Date.now(),
210
251
  updatedAt: Date.now(),
211
252
  };
212
253
  await this.rebalanceIntentStore.save(intent);
213
- this.logger.debug({ id: intent.id, origin: intent.origin, destination: intent.destination }, 'Created RebalanceIntent');
254
+ this.logger.debug({
255
+ id: intent.id,
256
+ origin: intent.origin,
257
+ destination: intent.destination,
258
+ executionMethod: intent.executionMethod,
259
+ }, 'Created RebalanceIntent');
214
260
  return intent;
215
261
  }
216
262
  async completeRebalanceIntent(id) {
@@ -237,9 +283,12 @@ export class ActionTracker {
237
283
  const action = {
238
284
  id: uuidv4(),
239
285
  status: 'in_progress',
286
+ type: params.type,
240
287
  intentId: params.intentId,
241
288
  messageId: params.messageId,
242
289
  txHash: params.txHash,
290
+ externalBridgeTransferId: params.externalBridgeTransferId,
291
+ externalBridgeId: params.externalBridgeId,
243
292
  origin: params.origin,
244
293
  destination: params.destination,
245
294
  amount: params.amount,
@@ -255,7 +304,7 @@ export class ActionTracker {
255
304
  });
256
305
  this.logger.debug({ intentId: intent.id }, 'Transitioned RebalanceIntent to in_progress');
257
306
  }
258
- this.logger.debug({ id: action.id, intentId: action.intentId }, 'Created RebalanceAction');
307
+ this.logger.debug({ id: action.id, intentId: action.intentId, type: action.type }, 'Created RebalanceAction');
259
308
  return action;
260
309
  }
261
310
  async completeRebalanceAction(id) {
@@ -264,26 +313,177 @@ export class ActionTracker {
264
313
  throw new Error(`RebalanceAction ${id} not found`);
265
314
  }
266
315
  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);
316
+ // Check if parent intent is now complete (derive from action states)
317
+ await this.checkAndCompleteIntent(action.intentId);
318
+ this.logger.info({ id, intentId: action.intentId, type: action.type }, 'Action completed');
319
+ }
320
+ /**
321
+ * Check if an intent is fully fulfilled based on completed action amounts.
322
+ * Only `inventory_deposit` and `rebalance_message` actions count toward fulfillment.
323
+ */
324
+ async checkAndCompleteIntent(intentId) {
325
+ const intent = await this.rebalanceIntentStore.get(intentId);
326
+ if (!intent || intent.status === 'complete')
327
+ return;
328
+ const completedAmount = await this.getCompletedAmountForIntent(intentId);
329
+ if (completedAmount >= intent.amount) {
330
+ await this.rebalanceIntentStore.update(intentId, { status: 'complete' });
331
+ this.logger.debug({ intentId, completedAmount: completedAmount.toString() }, 'RebalanceIntent fully fulfilled');
280
332
  }
281
- this.logger.info({ id, intentId: action.intentId }, 'Action completed');
333
+ }
334
+ /**
335
+ * Get the total completed amount for an intent from its actions.
336
+ * Only `inventory_deposit` and `rebalance_message` actions count.
337
+ */
338
+ async getCompletedAmountForIntent(intentId) {
339
+ const actions = await this.getActionsForIntent(intentId);
340
+ return actions
341
+ .filter((a) => a.status === 'complete' &&
342
+ (a.type === 'inventory_deposit' || a.type === 'rebalance_message'))
343
+ .reduce((sum, a) => sum + a.amount, 0n);
282
344
  }
283
345
  async failRebalanceAction(id) {
284
346
  await this.rebalanceActionStore.update(id, { status: 'failed' });
285
347
  this.logger.info({ id }, 'Action failed');
286
348
  }
349
+ // === RebalanceAction Queries ===
350
+ async getActionsByType(type) {
351
+ const allActions = await this.rebalanceActionStore.getAll();
352
+ return allActions.filter((action) => action.type === type);
353
+ }
354
+ async getInflightInventoryMovements(origin) {
355
+ const allActions = await this.rebalanceActionStore.getAll();
356
+ const inflightMovements = allActions.filter((action) => action.type === 'inventory_movement' &&
357
+ action.status === 'in_progress' &&
358
+ action.origin === origin);
359
+ return inflightMovements.reduce((sum, action) => sum + action.amount, BigInt(0));
360
+ }
361
+ /**
362
+ * Get inventory intents that are in_progress or not_started but not fully settled.
363
+ * Intents with in-flight deposits are included but flagged via hasInflightDeposit.
364
+ * Returns enriched data with computed values derived from action states.
365
+ *
366
+ * NOTE: We include 'not_started' intents because they may have been created
367
+ * but failed to execute (e.g., all bridges failed viability check). Without
368
+ * checking for these, we would create duplicate intents every polling cycle.
369
+ */
370
+ async getPartiallyFulfilledInventoryIntents() {
371
+ // Query both in_progress AND not_started intents
372
+ // not_started intents may exist if execution failed before any action was created
373
+ const [inProgressIntents, notStartedIntents] = await Promise.all([
374
+ this.rebalanceIntentStore.getByStatus('in_progress'),
375
+ this.rebalanceIntentStore.getByStatus('not_started'),
376
+ ]);
377
+ const allActiveIntents = [...inProgressIntents, ...notStartedIntents];
378
+ const partialIntents = [];
379
+ for (const intent of allActiveIntents) {
380
+ // Only inventory execution method
381
+ if (intent.executionMethod !== 'inventory')
382
+ continue;
383
+ const actions = await this.getActionsForIntent(intent.id);
384
+ // Check for in-flight inventory_movement actions
385
+ // Skip intents that have a bridge in progress - wait for it to complete
386
+ const hasInflightMovement = actions.some((a) => a.status === 'in_progress' && a.type === 'inventory_movement');
387
+ if (hasInflightMovement) {
388
+ this.logger.debug({ intentId: intent.id }, 'Skipping partial intent - has in-flight inventory movement');
389
+ continue;
390
+ }
391
+ // Compute amounts from action states
392
+ const completedAmount = actions
393
+ .filter((a) => a.status === 'complete' && a.type === 'inventory_deposit')
394
+ .reduce((sum, a) => sum + a.amount, 0n);
395
+ const inflightAmount = actions
396
+ .filter((a) => a.status === 'in_progress' && a.type === 'inventory_deposit')
397
+ .reduce((sum, a) => sum + a.amount, 0n);
398
+ const remaining = intent.amount - completedAmount - inflightAmount;
399
+ if (remaining > 0n || inflightAmount > 0n) {
400
+ partialIntents.push({
401
+ intent,
402
+ completedAmount,
403
+ remaining,
404
+ hasInflightDeposit: inflightAmount > 0n,
405
+ });
406
+ }
407
+ }
408
+ return partialIntents;
409
+ }
410
+ /**
411
+ * Get all actions associated with a specific intent.
412
+ */
413
+ async getActionsForIntent(intentId) {
414
+ const allActions = await this.rebalanceActionStore.getAll();
415
+ return allActions.filter((a) => a.intentId === intentId);
416
+ }
417
+ async syncInventoryMovementActions(externalBridgeRegistry) {
418
+ this.logger.debug('Syncing inventory movement actions');
419
+ let completed = 0;
420
+ let failed = 0;
421
+ // Get all in-progress inventory_movement actions
422
+ const inProgressActions = await this.rebalanceActionStore.getByStatus('in_progress');
423
+ const inventoryMovements = inProgressActions.filter((a) => a.type === 'inventory_movement');
424
+ this.logger.debug({ count: inventoryMovements.length }, 'Found in-progress inventory movements');
425
+ for (const action of inventoryMovements) {
426
+ // Skip if no txHash (shouldn't happen but be safe)
427
+ if (!action.txHash) {
428
+ this.logger.warn({ actionId: action.id }, 'Inventory movement action has no txHash');
429
+ continue;
430
+ }
431
+ // Skip if no externalBridgeId (shouldn't happen but be safe)
432
+ if (!action.externalBridgeId) {
433
+ this.logger.warn({ actionId: action.id }, 'Inventory movement action has no externalBridgeId');
434
+ continue;
435
+ }
436
+ const externalBridge = externalBridgeRegistry[action.externalBridgeId];
437
+ if (!externalBridge) {
438
+ this.logger.warn({ actionId: action.id, bridgeId: action.externalBridgeId }, 'Bridge not found in registry');
439
+ continue;
440
+ }
441
+ try {
442
+ const status = await externalBridge.getStatus(action.txHash, action.origin, action.destination);
443
+ if (status.status === 'complete') {
444
+ await this.completeRebalanceAction(action.id);
445
+ completed++;
446
+ this.logger.info({
447
+ actionId: action.id,
448
+ txHash: action.txHash,
449
+ receivedAmount: status.receivedAmount?.toString(),
450
+ }, 'Inventory movement completed');
451
+ }
452
+ else if (status.status === 'failed') {
453
+ await this.failRebalanceAction(action.id);
454
+ failed++;
455
+ this.logger.warn({
456
+ actionId: action.id,
457
+ txHash: action.txHash,
458
+ error: status.error,
459
+ }, 'Inventory movement failed');
460
+ }
461
+ else if (status.status === 'pending') {
462
+ this.logger.debug({
463
+ actionId: action.id,
464
+ txHash: action.txHash,
465
+ substatus: status.substatus,
466
+ }, 'Inventory movement still pending');
467
+ }
468
+ // status === 'not_found' - wait for next cycle
469
+ }
470
+ catch (error) {
471
+ this.logger.debug({
472
+ actionId: action.id,
473
+ txHash: action.txHash,
474
+ error: error.message,
475
+ }, 'Failed to get inventory movement status');
476
+ }
477
+ }
478
+ if (inventoryMovements.length > 0) {
479
+ this.logger.info({
480
+ completed,
481
+ failed,
482
+ pending: inventoryMovements.length - completed - failed,
483
+ }, 'Inventory movements synced');
484
+ }
485
+ return { completed, failed };
486
+ }
287
487
  // === Debug Helpers ===
288
488
  /**
289
489
  * Log the contents of all stores.
@@ -385,31 +585,38 @@ export class ActionTracker {
385
585
  try {
386
586
  // Create synthetic intent
387
587
  const { amount } = parseWarpRouteMessage(msg.message_body);
588
+ // Hasura returns block timestamps as UTC without 'Z' suffix (e.g. "2024-01-15T12:30:45").
589
+ // Null when the scraper hasn't indexed the origin block yet, so fall back to now.
590
+ // Note: when null, TTL effectively extends by scraper lag since recoverAction won't update createdAt later.
591
+ const createdAt = msg.send_occurred_at
592
+ ? new Date(msg.send_occurred_at + 'Z').getTime()
593
+ : Date.now();
594
+ assert(!isNaN(createdAt), `Invalid send_occurred_at timestamp: ${msg.send_occurred_at}`);
388
595
  const intent = {
389
596
  id: uuidv4(),
390
597
  status: 'in_progress',
391
598
  origin: msg.origin_domain_id,
392
599
  destination: msg.destination_domain_id,
393
600
  amount,
394
- fulfilledAmount: 0n,
395
601
  priority: undefined,
396
602
  strategyType: undefined,
397
- createdAt: Date.now(),
603
+ createdAt,
398
604
  updatedAt: Date.now(),
399
605
  };
400
606
  await this.rebalanceIntentStore.save(intent);
401
- this.logger.debug({ id: intent.id, amount: amount.toString() }, 'Created synthetic RebalanceIntent');
402
- // Create action
607
+ this.logger.debug({ id: intent.id, amount: amount.toString(), createdAt }, 'Created synthetic RebalanceIntent');
608
+ // Create action (recovered actions are always rebalance_message type)
403
609
  const action = {
404
610
  id: msg.msg_id,
405
611
  status: 'in_progress',
612
+ type: 'rebalance_message',
406
613
  intentId: intent.id,
407
614
  messageId: msg.msg_id,
408
615
  txHash: msg.origin_tx_hash,
409
616
  origin: msg.origin_domain_id,
410
617
  destination: msg.destination_domain_id,
411
618
  amount,
412
- createdAt: Date.now(),
619
+ createdAt,
413
620
  updatedAt: Date.now(),
414
621
  };
415
622
  await this.rebalanceActionStore.save(action);
@@ -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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"}