@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.
- package/dist/bridges/LiFiBridge.d.ts +67 -0
- package/dist/bridges/LiFiBridge.d.ts.map +1 -0
- package/dist/bridges/LiFiBridge.js +386 -0
- package/dist/bridges/LiFiBridge.js.map +1 -0
- package/dist/config/RebalancerConfig.d.ts +8 -2
- package/dist/config/RebalancerConfig.d.ts.map +1 -1
- package/dist/config/RebalancerConfig.js +9 -4
- package/dist/config/RebalancerConfig.js.map +1 -1
- package/dist/config/RebalancerConfig.test.js +135 -1
- package/dist/config/RebalancerConfig.test.js.map +1 -1
- package/dist/config/types.d.ts +1023 -304
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +113 -10
- package/dist/config/types.js.map +1 -1
- package/dist/core/InventoryRebalancer.d.ts +190 -0
- package/dist/core/InventoryRebalancer.d.ts.map +1 -0
- package/dist/core/InventoryRebalancer.js +892 -0
- package/dist/core/InventoryRebalancer.js.map +1 -0
- package/dist/core/InventoryRebalancer.test.d.ts +2 -0
- package/dist/core/InventoryRebalancer.test.d.ts.map +1 -0
- package/dist/core/InventoryRebalancer.test.js +1382 -0
- package/dist/core/InventoryRebalancer.test.js.map +1 -0
- package/dist/core/Rebalancer.d.ts +11 -4
- package/dist/core/Rebalancer.d.ts.map +1 -1
- package/dist/core/Rebalancer.js +92 -9
- package/dist/core/Rebalancer.js.map +1 -1
- package/dist/core/Rebalancer.test.js +82 -49
- package/dist/core/Rebalancer.test.js.map +1 -1
- package/dist/core/RebalancerOrchestrator.d.ts +30 -9
- package/dist/core/RebalancerOrchestrator.d.ts.map +1 -1
- package/dist/core/RebalancerOrchestrator.js +79 -71
- package/dist/core/RebalancerOrchestrator.js.map +1 -1
- package/dist/core/RebalancerOrchestrator.test.d.ts +2 -0
- package/dist/core/RebalancerOrchestrator.test.d.ts.map +1 -0
- package/dist/core/RebalancerOrchestrator.test.js +719 -0
- package/dist/core/RebalancerOrchestrator.test.js.map +1 -0
- package/dist/core/RebalancerService.d.ts +7 -3
- package/dist/core/RebalancerService.d.ts.map +1 -1
- package/dist/core/RebalancerService.js +44 -24
- package/dist/core/RebalancerService.js.map +1 -1
- package/dist/core/RebalancerService.test.js +74 -110
- package/dist/core/RebalancerService.test.js.map +1 -1
- package/dist/e2e/collateral-deficit.e2e-test.js +1 -3
- package/dist/e2e/collateral-deficit.e2e-test.js.map +1 -1
- package/dist/e2e/composite.e2e-test.js.map +1 -1
- package/dist/e2e/harness/BridgeSetup.d.ts +6 -0
- package/dist/e2e/harness/BridgeSetup.d.ts.map +1 -1
- package/dist/e2e/harness/BridgeSetup.js +10 -1
- package/dist/e2e/harness/BridgeSetup.js.map +1 -1
- package/dist/e2e/harness/ForkIndexer.d.ts.map +1 -1
- package/dist/e2e/harness/ForkIndexer.js +1 -0
- package/dist/e2e/harness/ForkIndexer.js.map +1 -1
- package/dist/e2e/harness/TestHelpers.d.ts.map +1 -1
- package/dist/e2e/harness/TestHelpers.js +1 -4
- package/dist/e2e/harness/TestHelpers.js.map +1 -1
- package/dist/e2e/harness/TestRebalancer.d.ts +1 -1
- package/dist/e2e/harness/TestRebalancer.d.ts.map +1 -1
- package/dist/e2e/harness/TestRebalancer.js +9 -9
- package/dist/e2e/harness/TestRebalancer.js.map +1 -1
- package/dist/e2e/minAmount.e2e-test.js +0 -1
- package/dist/e2e/minAmount.e2e-test.js.map +1 -1
- package/dist/e2e/weighted.e2e-test.js +0 -1
- package/dist/e2e/weighted.e2e-test.js.map +1 -1
- package/dist/factories/RebalancerContextFactory.d.ts +48 -6
- package/dist/factories/RebalancerContextFactory.d.ts.map +1 -1
- package/dist/factories/RebalancerContextFactory.js +171 -17
- package/dist/factories/RebalancerContextFactory.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IExternalBridge.d.ts +101 -0
- package/dist/interfaces/IExternalBridge.d.ts.map +1 -0
- package/dist/interfaces/IExternalBridge.js +2 -0
- package/dist/interfaces/IExternalBridge.js.map +1 -0
- package/dist/interfaces/IMonitor.d.ts +1 -0
- package/dist/interfaces/IMonitor.d.ts.map +1 -1
- package/dist/interfaces/IRebalancer.d.ts +25 -25
- package/dist/interfaces/IRebalancer.d.ts.map +1 -1
- package/dist/interfaces/IStrategy.d.ts +36 -3
- package/dist/interfaces/IStrategy.d.ts.map +1 -1
- package/dist/interfaces/IStrategy.js +12 -1
- package/dist/interfaces/IStrategy.js.map +1 -1
- package/dist/metrics/PriceGetter.js +1 -1
- package/dist/metrics/PriceGetter.js.map +1 -1
- package/dist/metrics/scripts/metrics.d.ts +3 -3
- package/dist/monitor/Monitor.d.ts +12 -2
- package/dist/monitor/Monitor.d.ts.map +1 -1
- package/dist/monitor/Monitor.js +46 -1
- package/dist/monitor/Monitor.js.map +1 -1
- package/dist/service.js +40 -17
- package/dist/service.js.map +1 -1
- package/dist/strategy/BaseStrategy.d.ts +12 -6
- package/dist/strategy/BaseStrategy.d.ts.map +1 -1
- package/dist/strategy/BaseStrategy.js +56 -21
- package/dist/strategy/BaseStrategy.js.map +1 -1
- package/dist/strategy/CollateralDeficitStrategy.d.ts +1 -1
- package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -1
- package/dist/strategy/CollateralDeficitStrategy.js +19 -11
- package/dist/strategy/CollateralDeficitStrategy.js.map +1 -1
- package/dist/strategy/CollateralDeficitStrategy.test.js +135 -2
- package/dist/strategy/CollateralDeficitStrategy.test.js.map +1 -1
- package/dist/strategy/CompositeStrategy.test.js +13 -0
- package/dist/strategy/CompositeStrategy.test.js.map +1 -1
- package/dist/strategy/MinAmountStrategy.test.js +4 -0
- package/dist/strategy/MinAmountStrategy.test.js.map +1 -1
- package/dist/strategy/StrategyFactory.d.ts +2 -1
- package/dist/strategy/StrategyFactory.d.ts.map +1 -1
- package/dist/strategy/StrategyFactory.js +24 -8
- package/dist/strategy/StrategyFactory.js.map +1 -1
- package/dist/strategy/WeightedStrategy.test.js +6 -0
- package/dist/strategy/WeightedStrategy.test.js.map +1 -1
- package/dist/test/helpers.d.ts +8 -7
- package/dist/test/helpers.d.ts.map +1 -1
- package/dist/test/helpers.js +23 -5
- package/dist/test/helpers.js.map +1 -1
- package/dist/test/lifiMocks.d.ts +51 -0
- package/dist/test/lifiMocks.d.ts.map +1 -0
- package/dist/test/lifiMocks.js +130 -0
- package/dist/test/lifiMocks.js.map +1 -0
- package/dist/tracking/ActionTracker.d.ts +34 -1
- package/dist/tracking/ActionTracker.d.ts.map +1 -1
- package/dist/tracking/ActionTracker.js +233 -26
- package/dist/tracking/ActionTracker.js.map +1 -1
- package/dist/tracking/ActionTracker.test.js +380 -19
- package/dist/tracking/ActionTracker.test.js.map +1 -1
- package/dist/tracking/IActionTracker.d.ts +48 -3
- package/dist/tracking/IActionTracker.d.ts.map +1 -1
- package/dist/tracking/InflightContextAdapter.d.ts.map +1 -1
- package/dist/tracking/InflightContextAdapter.js +24 -7
- package/dist/tracking/InflightContextAdapter.js.map +1 -1
- package/dist/tracking/InflightContextAdapter.test.js +7 -4
- package/dist/tracking/InflightContextAdapter.test.js.map +1 -1
- package/dist/tracking/types.d.ts +33 -2
- package/dist/tracking/types.d.ts.map +1 -1
- package/dist/utils/ExplorerClient.d.ts +3 -1
- package/dist/utils/ExplorerClient.d.ts.map +1 -1
- package/dist/utils/ExplorerClient.js +16 -8
- package/dist/utils/ExplorerClient.js.map +1 -1
- package/dist/utils/bridgeUtils.d.ts +27 -4
- package/dist/utils/bridgeUtils.d.ts.map +1 -1
- package/dist/utils/bridgeUtils.js +38 -0
- package/dist/utils/bridgeUtils.js.map +1 -1
- package/dist/utils/bridgeUtils.test.js +9 -0
- package/dist/utils/bridgeUtils.test.js.map +1 -1
- package/dist/utils/gasEstimation.d.ts +65 -0
- package/dist/utils/gasEstimation.d.ts.map +1 -0
- package/dist/utils/gasEstimation.js +176 -0
- package/dist/utils/gasEstimation.js.map +1 -0
- package/dist/utils/tokenUtils.d.ts +9 -1
- package/dist/utils/tokenUtils.d.ts.map +1 -1
- package/dist/utils/tokenUtils.js +11 -0
- package/dist/utils/tokenUtils.js.map +1 -1
- package/package.json +9 -7
- package/src/bridges/LiFiBridge.ts +538 -0
- package/src/config/RebalancerConfig.test.ts +162 -0
- package/src/config/RebalancerConfig.ts +21 -3
- package/src/config/types.ts +147 -10
- package/src/core/InventoryRebalancer.test.ts +1721 -0
- package/src/core/InventoryRebalancer.ts +1265 -0
- package/src/core/Rebalancer.test.ts +84 -30
- package/src/core/Rebalancer.ts +144 -23
- package/src/core/RebalancerOrchestrator.test.ts +869 -0
- package/src/core/RebalancerOrchestrator.ts +146 -95
- package/src/core/RebalancerService.test.ts +86 -124
- package/src/core/RebalancerService.ts +67 -33
- package/src/e2e/collateral-deficit.e2e-test.ts +2 -4
- package/src/e2e/composite.e2e-test.ts +5 -5
- package/src/e2e/harness/BridgeSetup.ts +28 -1
- package/src/e2e/harness/ForkIndexer.ts +1 -0
- package/src/e2e/harness/TestHelpers.ts +1 -4
- package/src/e2e/harness/TestRebalancer.ts +10 -7
- package/src/e2e/minAmount.e2e-test.ts +1 -2
- package/src/e2e/weighted.e2e-test.ts +1 -2
- package/src/factories/RebalancerContextFactory.ts +294 -24
- package/src/index.ts +22 -5
- package/src/interfaces/IExternalBridge.ts +115 -0
- package/src/interfaces/IMonitor.ts +1 -0
- package/src/interfaces/IRebalancer.ts +45 -29
- package/src/interfaces/IStrategy.ts +50 -3
- package/src/metrics/PriceGetter.ts +1 -1
- package/src/monitor/Monitor.ts +81 -2
- package/src/service.ts +59 -18
- package/src/strategy/BaseStrategy.ts +77 -24
- package/src/strategy/CollateralDeficitStrategy.test.ts +181 -4
- package/src/strategy/CollateralDeficitStrategy.ts +42 -15
- package/src/strategy/CompositeStrategy.test.ts +13 -0
- package/src/strategy/MinAmountStrategy.test.ts +4 -0
- package/src/strategy/StrategyFactory.ts +33 -6
- package/src/strategy/WeightedStrategy.test.ts +6 -0
- package/src/test/helpers.ts +39 -14
- package/src/test/lifiMocks.ts +174 -0
- package/src/tracking/ActionTracker.test.ts +443 -19
- package/src/tracking/ActionTracker.ts +339 -28
- package/src/tracking/IActionTracker.ts +59 -3
- package/src/tracking/InflightContextAdapter.test.ts +7 -4
- package/src/tracking/InflightContextAdapter.ts +42 -9
- package/src/tracking/types.ts +45 -2
- package/src/utils/ExplorerClient.ts +27 -10
- package/src/utils/bridgeUtils.test.ts +9 -0
- package/src/utils/bridgeUtils.ts +75 -6
- package/src/utils/gasEstimation.ts +272 -0
- package/src/utils/tokenUtils.ts +12 -0
- package/dist/tracking/index.d.ts +0 -7
- package/dist/tracking/index.d.ts.map +0 -1
- package/dist/tracking/index.js +0 -6
- package/dist/tracking/index.js.map +0 -1
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -5
- package/dist/utils/index.js.map +0 -1
- package/src/tracking/index.ts +0 -36
- package/src/utils/index.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,yBAAyB;IACnC,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;CACxC;AAGD,eAAO,MAAM,mCAAmC;;;;;;;;;EAS9C,CAAC;AAEH,oBAAY,uBAAuB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;EAI1C,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.js
CHANGED
|
@@ -21,21 +21,38 @@ export var RebalancerMinAmountType;
|
|
|
21
21
|
RebalancerMinAmountType["Absolute"] = "absolute";
|
|
22
22
|
RebalancerMinAmountType["Relative"] = "relative";
|
|
23
23
|
})(RebalancerMinAmountType || (RebalancerMinAmountType = {}));
|
|
24
|
+
/**
|
|
25
|
+
* Execution type for rebalancing on a chain:
|
|
26
|
+
* - `movableCollateral`: Uses MovableCollateralRouter.rebalance() on-chain (requires bridge address)
|
|
27
|
+
* - `inventory`: Uses external bridges (LiFi) + transferRemote (no bridge address needed)
|
|
28
|
+
*/
|
|
29
|
+
export var ExecutionType;
|
|
30
|
+
(function (ExecutionType) {
|
|
31
|
+
ExecutionType["MovableCollateral"] = "movableCollateral";
|
|
32
|
+
ExecutionType["Inventory"] = "inventory";
|
|
33
|
+
})(ExecutionType || (ExecutionType = {}));
|
|
34
|
+
export var ExternalBridgeType;
|
|
35
|
+
(function (ExternalBridgeType) {
|
|
36
|
+
ExternalBridgeType["LiFi"] = "lifi";
|
|
37
|
+
})(ExternalBridgeType || (ExternalBridgeType = {}));
|
|
24
38
|
export const RebalancerMinAmountConfigSchema = z.object({
|
|
25
39
|
min: z.string().or(z.number()),
|
|
26
40
|
target: z.string().or(z.number()),
|
|
27
41
|
type: z.nativeEnum(RebalancerMinAmountType),
|
|
28
42
|
});
|
|
29
|
-
// Base chain config with common properties
|
|
30
43
|
const RebalancerBridgeConfigSchema = z.object({
|
|
31
|
-
bridge: z
|
|
44
|
+
bridge: z
|
|
45
|
+
.string()
|
|
46
|
+
.regex(/0x[a-fA-F0-9]{40}/)
|
|
47
|
+
.optional(),
|
|
48
|
+
executionType: z.nativeEnum(ExecutionType).optional(),
|
|
49
|
+
externalBridge: z.nativeEnum(ExternalBridgeType).optional(),
|
|
32
50
|
bridgeMinAcceptedAmount: z.string().or(z.number()).optional(),
|
|
33
51
|
bridgeLockTime: z
|
|
34
52
|
.number()
|
|
35
53
|
.positive()
|
|
36
54
|
.transform((val) => val * 1_000)
|
|
37
|
-
.optional()
|
|
38
|
-
.describe('Expected time in seconds for bridge to process a transfer'),
|
|
55
|
+
.optional(),
|
|
39
56
|
});
|
|
40
57
|
export const RebalancerBaseChainConfigSchema = RebalancerBridgeConfigSchema.extend({
|
|
41
58
|
override: z
|
|
@@ -69,18 +86,33 @@ export const StrategyConfigSchema = z.discriminatedUnion('rebalanceStrategy', [
|
|
|
69
86
|
MinAmountStrategySchema,
|
|
70
87
|
CollateralDeficitStrategySchema,
|
|
71
88
|
]);
|
|
72
|
-
// Accept either a single strategy (backwards compatible) or an array of strategies
|
|
73
|
-
// Normalizes to array internally so the rest of the code doesn't need to change
|
|
74
89
|
export const RebalancerStrategySchema = z
|
|
75
|
-
.union([
|
|
76
|
-
StrategyConfigSchema, // Old format: single object
|
|
77
|
-
z.array(StrategyConfigSchema).min(1), // New format: array
|
|
78
|
-
])
|
|
90
|
+
.union([StrategyConfigSchema, z.array(StrategyConfigSchema).min(1)])
|
|
79
91
|
.transform((val) => (Array.isArray(val) ? val : [val]));
|
|
92
|
+
export const DEFAULT_INTENT_TTL_S = 604800; // 7 days
|
|
93
|
+
export const DEFAULT_INTENT_TTL_MS = DEFAULT_INTENT_TTL_S * 1_000;
|
|
94
|
+
export const LiFiBridgeConfigSchema = z.object({
|
|
95
|
+
integrator: z.string(),
|
|
96
|
+
defaultSlippage: z.number().optional(),
|
|
97
|
+
});
|
|
98
|
+
export const ExternalBridgesConfigSchema = z.object({
|
|
99
|
+
lifi: LiFiBridgeConfigSchema.optional(),
|
|
100
|
+
});
|
|
80
101
|
export const RebalancerConfigSchema = z
|
|
81
102
|
.object({
|
|
82
103
|
warpRouteId: z.string(),
|
|
83
104
|
strategy: RebalancerStrategySchema,
|
|
105
|
+
inventorySigner: z
|
|
106
|
+
.string()
|
|
107
|
+
.regex(/0x[a-fA-F0-9]{40}/)
|
|
108
|
+
.optional(),
|
|
109
|
+
externalBridges: ExternalBridgesConfigSchema.optional(),
|
|
110
|
+
intentTTL: z
|
|
111
|
+
.number()
|
|
112
|
+
.positive()
|
|
113
|
+
.default(DEFAULT_INTENT_TTL_S)
|
|
114
|
+
.describe('Max age in seconds before in-progress intent is expired. Default 7 days.')
|
|
115
|
+
.transform((val) => val * 1_000),
|
|
84
116
|
})
|
|
85
117
|
.superRefine((config, ctx) => {
|
|
86
118
|
// CollateralDeficitStrategy must be first in composite if it is used
|
|
@@ -147,6 +179,63 @@ export const RebalancerConfigSchema = z
|
|
|
147
179
|
});
|
|
148
180
|
}
|
|
149
181
|
}
|
|
182
|
+
// Validate bridge requirement based on executionType
|
|
183
|
+
for (const [chainName, chainConfig] of Object.entries(strategy.chains)) {
|
|
184
|
+
const executionType = chainConfig.executionType ?? ExecutionType.MovableCollateral;
|
|
185
|
+
// bridge is required for movableCollateral execution type
|
|
186
|
+
if (executionType === ExecutionType.MovableCollateral &&
|
|
187
|
+
!chainConfig.bridge) {
|
|
188
|
+
ctx.addIssue({
|
|
189
|
+
code: z.ZodIssueCode.custom,
|
|
190
|
+
message: `Chain '${chainName}' uses movableCollateral execution but has no 'bridge' address`,
|
|
191
|
+
path: ['strategy', strategyIndex, 'chains', chainName, 'bridge'],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// externalBridge is required for inventory execution type
|
|
195
|
+
if (executionType === ExecutionType.Inventory &&
|
|
196
|
+
!chainConfig.externalBridge) {
|
|
197
|
+
ctx.addIssue({
|
|
198
|
+
code: z.ZodIssueCode.custom,
|
|
199
|
+
message: `Chain '${chainName}' uses inventory execution but has no 'externalBridge' configured`,
|
|
200
|
+
path: [
|
|
201
|
+
'strategy',
|
|
202
|
+
strategyIndex,
|
|
203
|
+
'chains',
|
|
204
|
+
chainName,
|
|
205
|
+
'externalBridge',
|
|
206
|
+
],
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const hasInventoryChains = config.strategy.some((strategy) => Object.values(strategy.chains).some((chainConfig) => chainConfig.executionType === ExecutionType.Inventory));
|
|
212
|
+
if (hasInventoryChains) {
|
|
213
|
+
if (!config.inventorySigner) {
|
|
214
|
+
ctx.addIssue({
|
|
215
|
+
code: z.ZodIssueCode.custom,
|
|
216
|
+
message: 'inventorySigner is required when any chain uses inventory execution type',
|
|
217
|
+
path: ['inventorySigner'],
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
if (!config.externalBridges?.lifi?.integrator) {
|
|
221
|
+
ctx.addIssue({
|
|
222
|
+
code: z.ZodIssueCode.custom,
|
|
223
|
+
message: 'externalBridges.lifi is required when using inventory execution',
|
|
224
|
+
path: ['externalBridges', 'lifi'],
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
for (const strategy of config.strategy) {
|
|
229
|
+
for (const [chainName, chainConfig] of Object.entries(strategy.chains)) {
|
|
230
|
+
if (chainConfig.externalBridge === ExternalBridgeType.LiFi &&
|
|
231
|
+
!config.externalBridges?.lifi?.integrator) {
|
|
232
|
+
ctx.addIssue({
|
|
233
|
+
code: z.ZodIssueCode.custom,
|
|
234
|
+
message: `Chain '${chainName}' uses externalBridge: 'lifi' but externalBridges.lifi is not configured`,
|
|
235
|
+
path: ['externalBridges', 'lifi'],
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
150
239
|
}
|
|
151
240
|
});
|
|
152
241
|
/**
|
|
@@ -194,4 +283,18 @@ export function getAllBridges(strategies) {
|
|
|
194
283
|
}
|
|
195
284
|
return Array.from(bridges);
|
|
196
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Get the execution type for a chain.
|
|
288
|
+
* Returns the executionType from chain config, or MovableCollateral as default.
|
|
289
|
+
*/
|
|
290
|
+
export function getChainExecutionType(strategies, chainName) {
|
|
291
|
+
const chainConfig = getStrategyChainConfig(strategies, chainName);
|
|
292
|
+
return chainConfig?.executionType ?? ExecutionType.MovableCollateral;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Check if any chain in the strategies uses inventory execution type.
|
|
296
|
+
*/
|
|
297
|
+
export function hasInventoryChains(strategies) {
|
|
298
|
+
return strategies.some((strategy) => Object.values(strategy.chains).some((chainConfig) => chainConfig.executionType === ExecutionType.Inventory));
|
|
299
|
+
}
|
|
197
300
|
//# sourceMappingURL=types.js.map
|
package/dist/config/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAN,IAAY,yBAIX;AAJD,WAAY,yBAAyB;IACnC,kDAAqB,CAAA;IACrB,oDAAuB,CAAA;IACvB,oEAAuC,CAAA;AACzC,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,QAIpC;AAED,kCAAkC;AAClC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACd,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACd,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,gDAAqB,CAAA;AACvB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,uBAAuB,CAAC;CAC5C,CAAC,CAAC;AAEH,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import { type ChainName, type MultiProvider, type WarpCore } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import type { ExternalBridgeRegistry } from '../interfaces/IExternalBridge.js';
|
|
4
|
+
import type { IInventoryRebalancer, InventoryExecutionResult, RebalancerType } from '../interfaces/IRebalancer.js';
|
|
5
|
+
import type { InventoryRoute } from '../interfaces/IStrategy.js';
|
|
6
|
+
import type { IActionTracker } from '../tracking/IActionTracker.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for the InventoryRebalancer.
|
|
9
|
+
*/
|
|
10
|
+
export interface InventoryRebalancerConfig {
|
|
11
|
+
/** EOA address of the inventory signer */
|
|
12
|
+
inventorySigner: string;
|
|
13
|
+
/** Optional MultiProvider with inventory signer for signing transactions */
|
|
14
|
+
inventoryMultiProvider?: MultiProvider;
|
|
15
|
+
/** Chains configured for inventory-based rebalancing (for validation) */
|
|
16
|
+
inventoryChains: ChainName[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Executes inventory-based rebalances for chains that don't support MovableCollateralRouter.
|
|
20
|
+
*
|
|
21
|
+
* IMPORTANT: transferRemote ADDS collateral to the ORIGIN chain (where it's called FROM).
|
|
22
|
+
* So for a strategy route "base (surplus) → arbitrum (deficit)", we must:
|
|
23
|
+
* 1. Ensure inventory is available on the DESTINATION (deficit) chain - arbitrum
|
|
24
|
+
* 2. Call transferRemote FROM arbitrum TO base
|
|
25
|
+
* 3. This ADDS collateral to arbitrum (filling deficit) and releases from base (has surplus)
|
|
26
|
+
*
|
|
27
|
+
* The flow is:
|
|
28
|
+
* 1. Check if inventory is available on the destination (deficit) chain
|
|
29
|
+
* 2. If available, execute transferRemote from destination to origin (swapped direction)
|
|
30
|
+
* 3. If not available, bridge inventory to destination via LiFi, then execute transferRemote
|
|
31
|
+
*
|
|
32
|
+
* Actions created:
|
|
33
|
+
* - `inventory_movement`: LiFi bridge to move inventory to deficit chain
|
|
34
|
+
* - `inventory_deposit`: transferRemote to deposit collateral on deficit chain
|
|
35
|
+
*/
|
|
36
|
+
export declare class InventoryRebalancer implements IInventoryRebalancer {
|
|
37
|
+
readonly rebalancerType: RebalancerType;
|
|
38
|
+
private readonly logger;
|
|
39
|
+
private readonly config;
|
|
40
|
+
private readonly actionTracker;
|
|
41
|
+
private readonly externalBridgeRegistry;
|
|
42
|
+
private readonly warpCore;
|
|
43
|
+
private readonly multiProvider;
|
|
44
|
+
/**
|
|
45
|
+
* Internal balance storage for inventory tracking.
|
|
46
|
+
* Updated via setInventoryBalances() before each rebalance cycle.
|
|
47
|
+
*/
|
|
48
|
+
private inventoryBalances;
|
|
49
|
+
/**
|
|
50
|
+
* Tracks inventory consumed during the current execution cycle.
|
|
51
|
+
* Cleared at the start of each execute() call.
|
|
52
|
+
* Used to prevent over-execution when multiple routes withdraw from the same chain.
|
|
53
|
+
*/
|
|
54
|
+
private consumedInventory;
|
|
55
|
+
constructor(config: InventoryRebalancerConfig, actionTracker: IActionTracker, externalBridgeRegistry: Partial<ExternalBridgeRegistry>, warpCore: WarpCore, multiProvider: MultiProvider, logger: Logger);
|
|
56
|
+
/**
|
|
57
|
+
* Get bridge instance by type from registry.
|
|
58
|
+
* Throws if bridge type not found.
|
|
59
|
+
*/
|
|
60
|
+
private getExternalBridge;
|
|
61
|
+
private getNativeTokenAddress;
|
|
62
|
+
/**
|
|
63
|
+
* Validate that tokens on inventory chains are collateral-backed.
|
|
64
|
+
* Only checks tokens for chains configured with inventory-based rebalancing.
|
|
65
|
+
* Throws an error if any synthetic tokens are found on inventory chains.
|
|
66
|
+
*/
|
|
67
|
+
private validateCollateralBackedTokens;
|
|
68
|
+
/**
|
|
69
|
+
* Get the token for a specific chain from WarpCore.
|
|
70
|
+
*/
|
|
71
|
+
private getTokenForChain;
|
|
72
|
+
/**
|
|
73
|
+
* Set inventory balances from external source.
|
|
74
|
+
* Called before each rebalance cycle to update internal state.
|
|
75
|
+
*/
|
|
76
|
+
setInventoryBalances(balances: Record<ChainName, bigint>): void;
|
|
77
|
+
/**
|
|
78
|
+
* Get available inventory for a chain.
|
|
79
|
+
* Returns 0n for unknown chains.
|
|
80
|
+
*/
|
|
81
|
+
private getAvailableInventory;
|
|
82
|
+
/**
|
|
83
|
+
* Get all inventory balances.
|
|
84
|
+
*/
|
|
85
|
+
private getBalances;
|
|
86
|
+
/**
|
|
87
|
+
* Calculate total inventory across all chains, excluding specified chains.
|
|
88
|
+
*/
|
|
89
|
+
private getTotalInventory;
|
|
90
|
+
/**
|
|
91
|
+
* Get the effective available inventory for a chain, accounting for
|
|
92
|
+
* inventory already consumed during this execution cycle.
|
|
93
|
+
*
|
|
94
|
+
* This prevents over-execution when multiple routes withdraw from the same chain.
|
|
95
|
+
*
|
|
96
|
+
* @param chain - The chain to check inventory for
|
|
97
|
+
* @returns Effective available inventory (cached - consumed)
|
|
98
|
+
*/
|
|
99
|
+
private getEffectiveAvailableInventory;
|
|
100
|
+
/**
|
|
101
|
+
* Execute inventory-based rebalances for the given routes.
|
|
102
|
+
*
|
|
103
|
+
* Single-intent architecture:
|
|
104
|
+
* 1. Check for existing in_progress intent
|
|
105
|
+
* 2. If exists, continue existing intent (ignores new routes)
|
|
106
|
+
* 3. If not, take only the FIRST route and create a single intent
|
|
107
|
+
*/
|
|
108
|
+
rebalance(routes: InventoryRoute[]): Promise<InventoryExecutionResult[]>;
|
|
109
|
+
/**
|
|
110
|
+
* Get the single active inventory intent (if any).
|
|
111
|
+
* Returns null if no in_progress inventory intent exists.
|
|
112
|
+
*/
|
|
113
|
+
private getActiveInventoryIntent;
|
|
114
|
+
/**
|
|
115
|
+
* Continue execution of an existing partial intent.
|
|
116
|
+
* Uses the pre-computed remaining amount from PartialInventoryIntent.
|
|
117
|
+
*/
|
|
118
|
+
private continueIntent;
|
|
119
|
+
/**
|
|
120
|
+
* Execute a single inventory route.
|
|
121
|
+
*
|
|
122
|
+
* Strategy provides: origin (surplus) → destination (deficit)
|
|
123
|
+
* "Move collateral FROM origin TO destination"
|
|
124
|
+
*
|
|
125
|
+
* IMPORTANT: transferRemote ADDS collateral to the chain it's called FROM.
|
|
126
|
+
* So to fill the deficit on destination, we must:
|
|
127
|
+
* - Call transferRemote FROM destination TO origin (SWAPPED direction)
|
|
128
|
+
* - This ADDS to destination (deficit filled!) and RELEASES from origin (has surplus)
|
|
129
|
+
*
|
|
130
|
+
* Execution flow:
|
|
131
|
+
* 1. Check inventory on DESTINATION (deficit chain) - need funds there to call transferRemote
|
|
132
|
+
* 2. If low, LiFi bridge TO destination
|
|
133
|
+
* 3. Call transferRemote FROM destination TO origin (swapped)
|
|
134
|
+
*/
|
|
135
|
+
private executeRoute;
|
|
136
|
+
/**
|
|
137
|
+
* Execute a transferRemote to deposit collateral.
|
|
138
|
+
*
|
|
139
|
+
* IMPORTANT: The route passed here has SWAPPED direction from the strategy route.
|
|
140
|
+
* - route.origin = the deficit chain (where transferRemote is called FROM)
|
|
141
|
+
* - route.destination = the surplus chain (where Hyperlane message goes TO)
|
|
142
|
+
*
|
|
143
|
+
* transferRemote mechanics:
|
|
144
|
+
* - Calls _transferFromSender() which ADDS collateral to route.origin
|
|
145
|
+
* - Sends Hyperlane message to route.destination to RELEASE collateral
|
|
146
|
+
*
|
|
147
|
+
* @param route - The transfer route (swapped direction)
|
|
148
|
+
* @param intent - The rebalance intent being executed
|
|
149
|
+
* @param gasQuote - Pre-calculated gas quote from calculateTransferCosts
|
|
150
|
+
*/
|
|
151
|
+
private executeTransferRemote;
|
|
152
|
+
/**
|
|
153
|
+
* Select all source chains with available inventory for bridging.
|
|
154
|
+
* Returns sources sorted by available amount (highest first).
|
|
155
|
+
*/
|
|
156
|
+
private selectAllSourceChains;
|
|
157
|
+
/**
|
|
158
|
+
* Calculate the maximum amount that can be bridged from a source chain.
|
|
159
|
+
* Uses LiFi quote to determine gas costs, applies 20x multiplier buffer.
|
|
160
|
+
* Returns 0 if gas exceeds 10% of inventory (not economically viable).
|
|
161
|
+
*
|
|
162
|
+
* This is the key method for the gas-aware planning approach:
|
|
163
|
+
* - Gets a quote for the full raw inventory to determine actual gas costs
|
|
164
|
+
* - Applies conservative 20x buffer (LiFi underestimates by ~14x historically)
|
|
165
|
+
* - Returns 0 if gas > 10% of inventory (not worth bridging)
|
|
166
|
+
* - Returns inventory - estimatedGas if viable
|
|
167
|
+
*
|
|
168
|
+
* @param sourceChain - Chain to bridge from
|
|
169
|
+
* @param targetChain - Chain to bridge to
|
|
170
|
+
* @param rawInventory - Raw available inventory on source chain
|
|
171
|
+
* @param externalBridgeType - External bridge type to use
|
|
172
|
+
* @returns Maximum viable bridge amount (0 if not viable)
|
|
173
|
+
*/
|
|
174
|
+
private calculateMaxViableBridgeAmount;
|
|
175
|
+
/**
|
|
176
|
+
* Execute inventory movement from source chain to target chain via LiFi bridge.
|
|
177
|
+
*
|
|
178
|
+
* IMPORTANT: The amount parameter is now the MAX VIABLE amount (gas already subtracted
|
|
179
|
+
* by calculateMaxViableBridgeAmount). This method trusts that the amount is pre-validated.
|
|
180
|
+
*
|
|
181
|
+
* @param sourceChain - Chain to move inventory from
|
|
182
|
+
* @param targetChain - Chain to move inventory to (origin chain for rebalancing)
|
|
183
|
+
* @param amount - Pre-validated amount to bridge (gas already accounted for)
|
|
184
|
+
* @param intent - Rebalance intent for tracking
|
|
185
|
+
* @param externalBridgeType - External bridge type to use
|
|
186
|
+
* @returns Result with success status and optional txHash/error
|
|
187
|
+
*/
|
|
188
|
+
private executeInventoryMovement;
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=InventoryRebalancer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InventoryRebalancer.d.ts","sourceRoot":"","sources":["../../src/core/InventoryRebalancer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAEL,KAAK,SAAS,EAId,KAAK,aAAa,EAElB,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AA+BpE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,yEAAyE;IACzE,eAAe,EAAE,SAAS,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,SAAgB,cAAc,EAAE,cAAc,CAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkC;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAqC;IAE9D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAqC;gBAG5D,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,cAAc,EAC7B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAqBhB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;IAW7B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAmBtC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,IAAI;IAe/D;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;;OAQG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;;;;;;OAOG;IACG,SAAS,CACb,MAAM,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA+FtC;;;OAGG;YACW,wBAAwB;IAMtC;;;OAGG;YACW,cAAc;IAuE5B;;;;;;;;;;;;;;;OAeG;YACW,YAAY;IA4T1B;;;;;;;;;;;;;;OAcG;YACW,qBAAqB;IA+GnC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;;;;;;;;;;;;;;OAgBG;YACW,8BAA8B;IA4F5C;;;;;;;;;;;;OAYG;YACW,wBAAwB;CAqMvC"}
|