@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,22 +1,55 @@
|
|
|
1
1
|
import { type ChainMap, type ChainName } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import type { Address } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { ExternalBridgeType } from '../config/types.js';
|
|
4
|
+
import { ExecutionMethod } from '../tracking/types.js';
|
|
3
5
|
export type RawBalances = ChainMap<bigint>;
|
|
4
6
|
export interface Route {
|
|
5
7
|
origin: ChainName;
|
|
6
8
|
destination: ChainName;
|
|
7
9
|
amount: bigint;
|
|
10
|
+
/** Execution method used for this rebalance */
|
|
11
|
+
executionMethod?: ExecutionMethod;
|
|
8
12
|
}
|
|
9
|
-
export interface
|
|
13
|
+
export interface RouteWithContext extends Route {
|
|
14
|
+
/** For inventory intents: sum of complete inventory_deposit actions (message delivered) */
|
|
15
|
+
deliveredAmount?: bigint;
|
|
16
|
+
/** For inventory intents: sum of in_progress inventory_deposit actions (tx confirmed, message pending) */
|
|
17
|
+
awaitingDeliveryAmount?: bigint;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Route using movable collateral execution (on-chain rebalance via bridge)
|
|
21
|
+
*/
|
|
22
|
+
export interface MovableCollateralRoute extends Route {
|
|
23
|
+
executionType: 'movableCollateral';
|
|
10
24
|
bridge: Address;
|
|
11
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Route using inventory execution (external bridge + transferRemote)
|
|
28
|
+
*/
|
|
29
|
+
export interface InventoryRoute extends Route {
|
|
30
|
+
executionType: 'inventory';
|
|
31
|
+
externalBridge: ExternalBridgeType;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Discriminated union of route types by executionType
|
|
35
|
+
*/
|
|
36
|
+
export type StrategyRoute = MovableCollateralRoute | InventoryRoute;
|
|
37
|
+
/**
|
|
38
|
+
* Type guard to check if a route is a MovableCollateralRoute
|
|
39
|
+
*/
|
|
40
|
+
export declare function isMovableCollateralRoute(route: StrategyRoute): route is MovableCollateralRoute;
|
|
41
|
+
/**
|
|
42
|
+
* Type guard to check if a route is an InventoryRoute
|
|
43
|
+
*/
|
|
44
|
+
export declare function isInventoryRoute(route: StrategyRoute): route is InventoryRoute;
|
|
12
45
|
export type InflightContext = {
|
|
13
46
|
/**
|
|
14
47
|
* In-flight rebalances from ActionTracker.
|
|
15
48
|
* Uses Route[] because recovered intents (from Explorer startup recovery)
|
|
16
49
|
* don't have bridge information. Some routes may have bridge at runtime.
|
|
17
50
|
*/
|
|
18
|
-
pendingRebalances:
|
|
19
|
-
pendingTransfers:
|
|
51
|
+
pendingRebalances: RouteWithContext[];
|
|
52
|
+
pendingTransfers: RouteWithContext[];
|
|
20
53
|
/** Routes from earlier strategies - always have bridge */
|
|
21
54
|
proposedRebalances?: StrategyRoute[];
|
|
22
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IStrategy.d.ts","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"IStrategy.d.ts","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0GAA0G;IAC1G,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,KAAK;IACnD,aAAa,EAAE,mBAAmB,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,aAAa,EAAE,WAAW,CAAC;IAC3B,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,cAAc,CAAC;AAEpE;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,sBAAsB,CAEjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,cAAc,CAEzB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAClB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE,CAAC;CACpB"}
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Type guard to check if a route is a MovableCollateralRoute
|
|
3
|
+
*/
|
|
4
|
+
export function isMovableCollateralRoute(route) {
|
|
5
|
+
return route.executionType === 'movableCollateral';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Type guard to check if a route is an InventoryRoute
|
|
9
|
+
*/
|
|
10
|
+
export function isInventoryRoute(route) {
|
|
11
|
+
return route.executionType === 'inventory';
|
|
12
|
+
}
|
|
2
13
|
//# sourceMappingURL=IStrategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IStrategy.js","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"IStrategy.js","sourceRoot":"","sources":["../../src/interfaces/IStrategy.ts"],"names":[],"mappings":"AA4CA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAoB;IAEpB,OAAO,KAAK,CAAC,aAAa,KAAK,mBAAmB,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAoB;IAEpB,OAAO,KAAK,CAAC,aAAa,KAAK,WAAW,CAAC;AAC7C,CAAC"}
|
|
@@ -22,7 +22,7 @@ export class PriceGetter extends CoinGeckoTokenPriceGetter {
|
|
|
22
22
|
// e.g. Native warp routes on rollups that have been pre-funded.
|
|
23
23
|
const coinGeckoId = token.coinGeckoId;
|
|
24
24
|
if (!coinGeckoId) {
|
|
25
|
-
this.logger.
|
|
25
|
+
this.logger.debug({
|
|
26
26
|
tokenSymbol: token.symbol,
|
|
27
27
|
chain: token.chainName,
|
|
28
28
|
tokenAddress: token.addressOrDenom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriceGetter.js","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,yBAAyB,GAE1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,WAAY,SAAQ,yBAAyB;IACvC,MAAM,CAAS;IAEhC,YAAoB,EAClB,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACb,sBAAsB,GAOvB;QACC,KAAK,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,aAAsC,EACtC,MAAc,EACd,eAAwB,EACxB,aAAsB,EACtB,sBAA+B;QAE/B,OAAO,IAAI,WAAW,CAAC;YACrB,aAAa;YACb,MAAM;YACN,MAAM,EAAE,eAAe;YACvB,aAAa;YACb,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,8BAA8B;IAC9B,KAAK,CAAC,gBAAgB,CAAC,KAAY;QACjC,2DAA2D;QAC3D,gFAAgF;QAChF,gEAAgE;QAChE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"PriceGetter.js","sourceRoot":"","sources":["../../src/metrics/PriceGetter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,yBAAyB,GAE1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,WAAY,SAAQ,yBAAyB;IACvC,MAAM,CAAS;IAEhC,YAAoB,EAClB,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACb,sBAAsB,GAOvB;QACC,KAAK,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,aAAsC,EACtC,MAAc,EACd,eAAwB,EACxB,aAAsB,EACtB,sBAA+B;QAE/B,OAAO,IAAI,WAAW,CAAC;YACrB,aAAa;YACb,MAAM;YACN,MAAM,EAAE,eAAe;YACvB,aAAa;YACb,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,8BAA8B;IAC9B,KAAK,CAAC,gBAAgB,CAAC,KAAY;QACjC,2DAA2D;QAC3D,gFAAgF;QAChF,gEAAgE;QAChE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;gBACE,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,YAAY,EAAE,KAAK,CAAC,cAAc;aACnC,EACD,gCAAgC,CACjC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -5,10 +5,10 @@ import { type ChainName, type Token, type WarpCore } from '@hyperlane-xyz/sdk';
|
|
|
5
5
|
import { type Address } from '@hyperlane-xyz/utils';
|
|
6
6
|
export declare const metricsRegister: Registry;
|
|
7
7
|
export declare const rebalancerExecutionTotal: Counter<"warp_route_id" | "succeeded">;
|
|
8
|
-
export declare const rebalancerExecutionAmount: Counter<"
|
|
8
|
+
export declare const rebalancerExecutionAmount: Counter<"origin" | "destination" | "warp_route_id" | "token">;
|
|
9
9
|
export declare const rebalancerPollingErrorsTotal: Counter<"warp_route_id">;
|
|
10
|
-
export declare const rebalancerIntentsCreatedTotal: Counter<"strategy" | "
|
|
11
|
-
export declare const rebalancerActionsCreatedTotal: Counter<"
|
|
10
|
+
export declare const rebalancerIntentsCreatedTotal: Counter<"strategy" | "origin" | "destination" | "warp_route_id">;
|
|
11
|
+
export declare const rebalancerActionsCreatedTotal: Counter<"origin" | "destination" | "warp_route_id" | "succeeded">;
|
|
12
12
|
/**
|
|
13
13
|
* Updates token balance metrics for a warp route token.
|
|
14
14
|
*/
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { type Logger } from 'pino';
|
|
2
|
-
import { type WarpCore } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import { type ChainName, type WarpCore } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
3
4
|
import { type IMonitor, type MonitorEvent, MonitorEventType } from '../interfaces/IMonitor.js';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for the Monitor's inventory tracking.
|
|
7
|
+
*/
|
|
8
|
+
export interface InventoryMonitorConfig {
|
|
9
|
+
inventoryAddress: Address;
|
|
10
|
+
chains: ChainName[];
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* Simple monitor implementation that polls warp route collateral balances and emits them as MonitorEvent.
|
|
6
14
|
* Awaits the TokenInfo handler before starting the next cycle to prevent race conditions.
|
|
@@ -9,6 +17,7 @@ export declare class Monitor implements IMonitor {
|
|
|
9
17
|
private readonly checkFrequency;
|
|
10
18
|
private readonly warpCore;
|
|
11
19
|
private readonly logger;
|
|
20
|
+
private readonly inventoryConfig?;
|
|
12
21
|
private tokenInfoHandler?;
|
|
13
22
|
private errorHandler?;
|
|
14
23
|
private startHandler?;
|
|
@@ -18,13 +27,14 @@ export declare class Monitor implements IMonitor {
|
|
|
18
27
|
/**
|
|
19
28
|
* @param checkFrequency - The frequency to poll balances in ms.
|
|
20
29
|
*/
|
|
21
|
-
constructor(checkFrequency: number, warpCore: WarpCore, logger: Logger);
|
|
30
|
+
constructor(checkFrequency: number, warpCore: WarpCore, logger: Logger, inventoryConfig?: InventoryMonitorConfig | undefined);
|
|
22
31
|
private computeConfirmedBlockTags;
|
|
23
32
|
on(eventName: MonitorEventType.TokenInfo, fn: (event: MonitorEvent) => void | Promise<void>): this;
|
|
24
33
|
on(eventName: MonitorEventType.Error, fn: (event: Error) => void): this;
|
|
25
34
|
on(eventName: MonitorEventType.Start, fn: () => void): this;
|
|
26
35
|
start(): Promise<void>;
|
|
27
36
|
private getTokenBridgedSupply;
|
|
37
|
+
private fetchInventoryBalances;
|
|
28
38
|
stop(): Promise<void>;
|
|
29
39
|
}
|
|
30
40
|
//# sourceMappingURL=Monitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,
|
|
1
|
+
{"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAS,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IAYpC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAdnC,OAAO,CAAC,gBAAgB,CAAC,CAAgD;IACzE,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;gBAEgB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,sBAAsB,YAAA;YAG7C,yBAAyB;IAgBvC,EAAE,CACA,SAAS,EAAE,gBAAgB,CAAC,SAAS,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI;IACP,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACvE,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAkBrD,KAAK;YA+GG,qBAAqB;YAmDrB,sBAAsB;IA+CpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBtB"}
|
package/dist/monitor/Monitor.js
CHANGED
|
@@ -9,6 +9,7 @@ export class Monitor {
|
|
|
9
9
|
checkFrequency;
|
|
10
10
|
warpCore;
|
|
11
11
|
logger;
|
|
12
|
+
inventoryConfig;
|
|
12
13
|
tokenInfoHandler;
|
|
13
14
|
errorHandler;
|
|
14
15
|
startHandler;
|
|
@@ -18,10 +19,11 @@ export class Monitor {
|
|
|
18
19
|
/**
|
|
19
20
|
* @param checkFrequency - The frequency to poll balances in ms.
|
|
20
21
|
*/
|
|
21
|
-
constructor(checkFrequency, warpCore, logger) {
|
|
22
|
+
constructor(checkFrequency, warpCore, logger, inventoryConfig) {
|
|
22
23
|
this.checkFrequency = checkFrequency;
|
|
23
24
|
this.warpCore = warpCore;
|
|
24
25
|
this.logger = logger;
|
|
26
|
+
this.inventoryConfig = inventoryConfig;
|
|
25
27
|
}
|
|
26
28
|
async computeConfirmedBlockTags() {
|
|
27
29
|
const blockTags = {};
|
|
@@ -77,6 +79,18 @@ export class Monitor {
|
|
|
77
79
|
bridgedSupply,
|
|
78
80
|
});
|
|
79
81
|
}
|
|
82
|
+
const inventoryBalances = await this.fetchInventoryBalances();
|
|
83
|
+
if (Object.keys(inventoryBalances).length > 0) {
|
|
84
|
+
event.inventoryBalances = inventoryBalances;
|
|
85
|
+
this.logger.info({
|
|
86
|
+
chainsMonitored: Object.keys(inventoryBalances).length,
|
|
87
|
+
balances: Object.entries(inventoryBalances).map(([chain, balance]) => ({
|
|
88
|
+
chain,
|
|
89
|
+
balance: balance.toString(),
|
|
90
|
+
balanceEth: (Number(balance) / 1e18).toFixed(6),
|
|
91
|
+
})),
|
|
92
|
+
}, 'Inventory balances fetched');
|
|
93
|
+
}
|
|
80
94
|
if (this.tokenInfoHandler) {
|
|
81
95
|
await this.tokenInfoHandler(event);
|
|
82
96
|
}
|
|
@@ -141,6 +155,37 @@ export class Monitor {
|
|
|
141
155
|
}
|
|
142
156
|
return bridgedSupply;
|
|
143
157
|
}
|
|
158
|
+
async fetchInventoryBalances() {
|
|
159
|
+
if (!this.inventoryConfig)
|
|
160
|
+
return {};
|
|
161
|
+
const balances = {};
|
|
162
|
+
const readPromises = this.inventoryConfig.chains.map(async (chainName) => {
|
|
163
|
+
const token = this.warpCore.tokens.find((t) => t.chainName === chainName);
|
|
164
|
+
if (!token) {
|
|
165
|
+
this.logger.warn({ chain: chainName }, 'No token found for inventory chain');
|
|
166
|
+
return { chainName, balance: 0n };
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
const adapter = token.getAdapter(this.warpCore.multiProvider);
|
|
170
|
+
const balance = await adapter.getBalance(this.inventoryConfig.inventoryAddress);
|
|
171
|
+
this.logger.debug({
|
|
172
|
+
chain: chainName,
|
|
173
|
+
token: token.addressOrDenom,
|
|
174
|
+
balance: balance.toString(),
|
|
175
|
+
}, 'Read inventory balance');
|
|
176
|
+
return { chainName, balance };
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
this.logger.error({ chain: chainName, error: error.message }, 'Failed to read inventory balance');
|
|
180
|
+
return { chainName, balance: 0n };
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
const results = await Promise.all(readPromises);
|
|
184
|
+
for (const { chainName, balance } of results) {
|
|
185
|
+
balances[chainName] = balance;
|
|
186
|
+
}
|
|
187
|
+
return balances;
|
|
188
|
+
}
|
|
144
189
|
stop() {
|
|
145
190
|
if (!this.isMonitorRunning)
|
|
146
191
|
return Promise.resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAW,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAKL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAU5D;;;GAGG;AACH,MAAM,OAAO,OAAO;IAYC;IACA;IACA;IACA;IAdX,gBAAgB,CAAiD;IACjE,YAAY,CAA0B;IACtC,YAAY,CAAc;IAC1B,gBAAgB,GAAG,KAAK,CAAC;IACzB,WAAW,GAAwB,IAAI,CAAC;IACxC,WAAW,GAAyB,IAAI,CAAC;IAEjD;;OAEG;IACH,YACmB,cAAsB,EACtB,QAAkB,EAClB,MAAc,EACd,eAAwC;QAHxC,mBAAc,GAAd,cAAc,CAAQ;QACtB,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAyB;IACxD,CAAC;IAEI,KAAK,CAAC,yBAAyB;QACrC,MAAM,SAAS,GAAuB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAErE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,KAAK,EACL,IAAI,CAAC,MAAM,CACZ,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IASD,EAAE,CAAC,SAAiB,EAAE,EAA4C;QAChE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,gBAAgB,CAAC,SAAS;gBAC7B,IAAI,CAAC,gBAAgB,GAAG,EAEC,CAAC;gBAC1B,MAAM;YACR,KAAK,gBAAgB,CAAC,KAAK;gBACzB,IAAI,CAAC,YAAY,GAAG,EAA4B,CAAC;gBACjD,MAAM;YACR,KAAK,gBAAgB,CAAC,KAAK;gBACzB,IAAI,CAAC,YAAY,GAAG,EAAgB,CAAC;gBACrC,MAAM;QACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,+CAA+C;YAC/C,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,EACvC,iBAAiB,CAClB,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAEtB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE9B,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAE3C,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBAElE,MAAM,KAAK,GAAiB;wBAC1B,UAAU,EAAE,EAAE;wBACd,kBAAkB;qBACnB,CAAC;oBAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;4BACE,KAAK,EAAE,KAAK,CAAC,SAAS;4BACtB,WAAW,EAAE,KAAK,CAAC,MAAM;4BACzB,YAAY,EAAE,KAAK,CAAC,cAAc;yBACnC,EACD,gBAAgB,CACjB,CAAC;wBACF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBACrD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACpD,KAAK,EACL,QAAQ,CACT,CAAC;wBAEF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;4BACpB,KAAK;4BACL,aAAa;yBACd,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;wBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;4BACE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM;4BACtD,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAC7C,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gCACrB,KAAK;gCACL,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;gCAC3B,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;6BAChD,CAAC,CACH;yBACF,EACD,4BAA4B,CAC7B,CAAC;oBACJ,CAAC;oBAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBACrC,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,YAAY,EAAE,CACjB,IAAI,mBAAmB,CACrB,yCAA0C,KAAe,CAAC,OAAO,EAAE,EACnE,KAAc,CACf,CACF,CAAC;gBACJ,CAAC;gBAED,kEAAkE;gBAClE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;gBAChD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBACD,6DAA6D;YAC/D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,EAAE,CACjB,IAAI,iBAAiB,CACnB,2BAA4B,KAAe,CAAC,OAAO,EAAE,EACrD,KAAc,CACf,CACF,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpC,uEAAuE;QACvE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,KAAY,EACZ,QAA4B;QAE5B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,YAAY,EAAE,KAAK,CAAC,cAAc;aACnC,EACD,sDAAsD,CACvD,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,aAAiC,CAAC;QAEtC,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,EACpC,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,QAAQ;gBACR,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,EACD,uDAAuD,CACxD,CAAC;YACF,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,YAAY,EAAE,KAAK,CAAC,cAAc;aACnC,EACD,oCAAoC,CACrC,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAEtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,oCAAoC,CACrC,CAAC;gBACF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,eAAgB,CAAC,gBAAgB,CACvC,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;oBACE,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,KAAK,CAAC,cAAc;oBAC3B,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;iBAC5B,EACD,wBAAwB,CACzB,CAAC;gBACF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,EACrD,kCAAkC,CACnC,CAAC;gBACF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhD,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;YAC7C,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAErD,8DAA8D;QAC9D,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,iEAAiE;QACjE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,+DAA+D;QAC/D,0CAA0C;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
package/dist/service.js
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Environment Variables:
|
|
10
10
|
* - REBALANCER_CONFIG_FILE: Path to the rebalancer configuration YAML file (required)
|
|
11
|
-
* -
|
|
11
|
+
* - HYP_REBALANCER_KEY: Private key for movable collateral rebalancing operations (preferred)
|
|
12
|
+
* - HYP_KEY: Fallback private key for HYP_REBALANCER_KEY (optional)
|
|
13
|
+
* - HYP_INVENTORY_KEY: Private key for inventory operations - LiFi bridges and transferRemote (optional)
|
|
12
14
|
* - COINGECKO_API_KEY: API key for CoinGecko price fetching (optional, for metrics)
|
|
13
15
|
* - CHECK_FREQUENCY: Balance check frequency in ms (default: 60000)
|
|
14
16
|
* - WITH_METRICS: Enable Prometheus metrics (default: "true")
|
|
@@ -19,12 +21,12 @@
|
|
|
19
21
|
*
|
|
20
22
|
* Usage:
|
|
21
23
|
* node dist/service.js
|
|
22
|
-
* REBALANCER_CONFIG_FILE=/config/rebalancer.yaml
|
|
24
|
+
* REBALANCER_CONFIG_FILE=/config/rebalancer.yaml HYP_REBALANCER_KEY=0x... HYP_INVENTORY_KEY=0x... node dist/service.js
|
|
23
25
|
*/
|
|
24
26
|
import { Wallet } from 'ethers';
|
|
25
27
|
import { DEFAULT_GITHUB_REGISTRY } from '@hyperlane-xyz/registry';
|
|
26
28
|
import { getRegistry } from '@hyperlane-xyz/registry/fs';
|
|
27
|
-
import {
|
|
29
|
+
import { MultiProvider } from '@hyperlane-xyz/sdk';
|
|
28
30
|
import { applyRpcUrlOverridesFromEnv, createServiceLogger, rootLogger, } from '@hyperlane-xyz/utils';
|
|
29
31
|
import { RebalancerConfig } from './config/RebalancerConfig.js';
|
|
30
32
|
import { RebalancerService } from './core/RebalancerService.js';
|
|
@@ -36,11 +38,13 @@ async function main() {
|
|
|
36
38
|
rootLogger.error('REBALANCER_CONFIG_FILE environment variable is required');
|
|
37
39
|
process.exit(1);
|
|
38
40
|
}
|
|
39
|
-
const
|
|
40
|
-
if (!
|
|
41
|
-
rootLogger.error('HYP_KEY environment variable is required');
|
|
41
|
+
const rebalancerPrivateKey = process.env.HYP_REBALANCER_KEY ?? process.env.HYP_KEY;
|
|
42
|
+
if (!rebalancerPrivateKey) {
|
|
43
|
+
rootLogger.error('HYP_REBALANCER_KEY (or HYP_KEY) environment variable is required');
|
|
42
44
|
process.exit(1);
|
|
43
45
|
}
|
|
46
|
+
// Optional: inventory key for inventory-based operations (LiFi bridges, transferRemote)
|
|
47
|
+
const inventoryPrivateKey = process.env.HYP_INVENTORY_KEY;
|
|
44
48
|
// Parse optional environment variables
|
|
45
49
|
let checkFrequency = 60_000;
|
|
46
50
|
if (process.env.CHECK_FREQUENCY) {
|
|
@@ -83,20 +87,39 @@ async function main() {
|
|
|
83
87
|
const chainMetadata = await registry.getMetadata();
|
|
84
88
|
logger.info(`✅ Loaded metadata for ${Object.keys(chainMetadata).length} chains`);
|
|
85
89
|
// Apply RPC URL overrides from environment variables
|
|
86
|
-
|
|
87
|
-
if (overriddenChains.length > 0) {
|
|
88
|
-
logger.info({ chains: overriddenChains, count: overriddenChains.length }, 'Applied RPC overrides from environment variables');
|
|
89
|
-
}
|
|
90
|
+
applyRpcUrlOverridesFromEnv(chainMetadata);
|
|
90
91
|
// Create MultiProvider with signer
|
|
91
92
|
const multiProvider = new MultiProvider(chainMetadata);
|
|
92
|
-
const
|
|
93
|
-
multiProvider.setSharedSigner(
|
|
94
|
-
logger.info('✅ Initialized MultiProvider with signer');
|
|
95
|
-
// Create
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
const rebalancerSigner = new Wallet(rebalancerPrivateKey);
|
|
94
|
+
multiProvider.setSharedSigner(rebalancerSigner);
|
|
95
|
+
logger.info({ rebalancerAddress: rebalancerSigner.address }, '✅ Initialized MultiProvider with rebalancer signer');
|
|
96
|
+
// Create inventory MultiProvider if inventory key is provided
|
|
97
|
+
let inventoryMultiProvider;
|
|
98
|
+
if (inventoryPrivateKey) {
|
|
99
|
+
inventoryMultiProvider = new MultiProvider(chainMetadata, {
|
|
100
|
+
providers: multiProvider.providers,
|
|
101
|
+
});
|
|
102
|
+
const inventorySigner = new Wallet(inventoryPrivateKey);
|
|
103
|
+
inventoryMultiProvider.setSharedSigner(inventorySigner);
|
|
104
|
+
// Validate against config.inventorySigner if present
|
|
105
|
+
const inventoryAddress = inventorySigner.address;
|
|
106
|
+
if (rebalancerConfig.inventorySigner &&
|
|
107
|
+
rebalancerConfig.inventorySigner.toLowerCase() !==
|
|
108
|
+
inventoryAddress.toLowerCase()) {
|
|
109
|
+
throw new Error(`inventorySigner mismatch: config has ${rebalancerConfig.inventorySigner} but HYP_INVENTORY_KEY derives to ${inventoryAddress}`);
|
|
110
|
+
}
|
|
111
|
+
logger.info({ inventoryAddress }, '✅ Initialized inventory MultiProvider');
|
|
112
|
+
}
|
|
113
|
+
// Fail fast if config references inventorySigner but no HYP_INVENTORY_KEY is provided
|
|
114
|
+
// Without the matching key, inventory operations would silently use the wrong signer
|
|
115
|
+
if (rebalancerConfig.inventorySigner && !inventoryPrivateKey) {
|
|
116
|
+
logger.error({ inventorySigner: rebalancerConfig.inventorySigner }, 'Config specifies inventorySigner but HYP_INVENTORY_KEY is not set. Provide the key or remove inventorySigner from config.');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
// MultiProtocolProvider will be derived from multiProvider in factory
|
|
120
|
+
const multiProtocolProvider = undefined;
|
|
98
121
|
// Create the rebalancer service
|
|
99
|
-
const service = new RebalancerService(multiProvider, multiProtocolProvider, registry, rebalancerConfig, {
|
|
122
|
+
const service = new RebalancerService(multiProvider, inventoryMultiProvider, multiProtocolProvider, registry, rebalancerConfig, {
|
|
100
123
|
mode: 'daemon',
|
|
101
124
|
checkFrequency,
|
|
102
125
|
monitorOnly,
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Logger } from 'pino';
|
|
2
2
|
import type { ChainMap, ChainName, Token } from '@hyperlane-xyz/sdk';
|
|
3
|
-
import type { IStrategy, InflightContext, RawBalances, Route, StrategyRoute } from '../interfaces/IStrategy.js';
|
|
3
|
+
import type { IStrategy, InflightContext, RawBalances, Route, RouteWithContext, StrategyRoute } from '../interfaces/IStrategy.js';
|
|
4
4
|
import { type Metrics } from '../metrics/Metrics.js';
|
|
5
5
|
import { type BridgeConfig, type BridgeConfigWithOverride } from '../utils/bridgeUtils.js';
|
|
6
6
|
export type Delta = {
|
|
@@ -51,17 +51,23 @@ export declare abstract class BaseStrategy implements IStrategy {
|
|
|
51
51
|
*/
|
|
52
52
|
protected reserveCollateral(rawBalances: RawBalances, pendingTransfers: Route[]): RawBalances;
|
|
53
53
|
/**
|
|
54
|
-
* Simulate pending rebalances
|
|
54
|
+
* Simulate pending rebalances based on execution method.
|
|
55
55
|
*
|
|
56
|
-
*
|
|
57
|
-
* -
|
|
58
|
-
*
|
|
56
|
+
* For **movable_collateral** (default):
|
|
57
|
+
* - Add full amount to destination (origin already deducted on-chain)
|
|
58
|
+
*
|
|
59
|
+
* For **inventory**:
|
|
60
|
+
* - Simulate the eventual final state as if the entire intent will be fulfilled
|
|
61
|
+
* - Destination: add unfulfilled amount (total - delivered - awaiting)
|
|
62
|
+
* This is what's NOT yet reflected in on-chain balance
|
|
63
|
+
* - Origin: subtract pending amount (total - delivered)
|
|
64
|
+
* This is what WILL decrease when all messages deliver
|
|
59
65
|
*
|
|
60
66
|
* @param rawBalances - Current balances (may already have collateral reserved)
|
|
61
67
|
* @param pendingRebalances - In-flight rebalance operations (in_progress only)
|
|
62
68
|
* @returns Simulated future balances after rebalances complete
|
|
63
69
|
*/
|
|
64
|
-
protected simulatePendingRebalances(rawBalances: RawBalances, pendingRebalances:
|
|
70
|
+
protected simulatePendingRebalances(rawBalances: RawBalances, pendingRebalances: RouteWithContext[]): RawBalances;
|
|
65
71
|
/**
|
|
66
72
|
* Simulate proposed rebalances by subtracting from origin AND adding to destination.
|
|
67
73
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"BaseStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAG9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,8BAAsB,YAAa,YAAW,SAAS;IACrD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAGrD,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EACjD,OAAO,CAAC,EAAE,OAAO,EACjB,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAarC,SAAS,CAAC,uBAAuB,CAC/B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,YAAY;IAIf;;OAEG;IACH,oBAAoB,CAClB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,aAAa,EAAE;IAgMlB;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CACvC,QAAQ,EAAE,WAAW,EACrB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAC3B,kBAAkB,CAAC,EAAE,aAAa,EAAE,GACnC;QACD,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,KAAK,EAAE,CAAC;KACnB;IAED;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAoB7D;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CACzB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,KAAK,EAAE,GACxB,WAAW;IAqCd;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,yBAAyB,CACjC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,WAAW;IAgFd;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,0BAA0B,CAClC,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,KAAK,EAAE,GAC1B,WAAW;IAyCd,SAAS,CAAC,YAAY,CACpB,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,WAAW,GAC1B,aAAa,EAAE;CA8CnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toWei } from '@hyperlane-xyz/utils';
|
|
2
|
-
import { getBridgeConfig, } from '../utils/bridgeUtils.js';
|
|
2
|
+
import { createStrategyRoute, getBridgeConfig, } from '../utils/bridgeUtils.js';
|
|
3
3
|
/**
|
|
4
4
|
* Base abstract class for rebalancing strategies
|
|
5
5
|
*/
|
|
@@ -102,13 +102,8 @@ export class BaseStrategy {
|
|
|
102
102
|
if (transferAmount > 0n) {
|
|
103
103
|
// Get bridge config for this route (with destination-specific overrides)
|
|
104
104
|
const bridgeConfig = this.getBridgeConfigForRoute(surplus.chain, deficit.chain);
|
|
105
|
-
//
|
|
106
|
-
routes.push(
|
|
107
|
-
origin: surplus.chain,
|
|
108
|
-
destination: deficit.chain,
|
|
109
|
-
amount: transferAmount,
|
|
110
|
-
bridge: bridgeConfig.bridge,
|
|
111
|
-
});
|
|
105
|
+
// Create appropriate route type based on execution type
|
|
106
|
+
routes.push(createStrategyRoute(bridgeConfig, surplus.chain, deficit.chain, transferAmount));
|
|
112
107
|
}
|
|
113
108
|
// Decreases the amounts for the following iterations
|
|
114
109
|
deficit.amount -= transferAmount;
|
|
@@ -195,11 +190,17 @@ export class BaseStrategy {
|
|
|
195
190
|
return reserved;
|
|
196
191
|
}
|
|
197
192
|
/**
|
|
198
|
-
* Simulate pending rebalances
|
|
193
|
+
* Simulate pending rebalances based on execution method.
|
|
199
194
|
*
|
|
200
|
-
*
|
|
201
|
-
* -
|
|
202
|
-
*
|
|
195
|
+
* For **movable_collateral** (default):
|
|
196
|
+
* - Add full amount to destination (origin already deducted on-chain)
|
|
197
|
+
*
|
|
198
|
+
* For **inventory**:
|
|
199
|
+
* - Simulate the eventual final state as if the entire intent will be fulfilled
|
|
200
|
+
* - Destination: add unfulfilled amount (total - delivered - awaiting)
|
|
201
|
+
* This is what's NOT yet reflected in on-chain balance
|
|
202
|
+
* - Origin: subtract pending amount (total - delivered)
|
|
203
|
+
* This is what WILL decrease when all messages deliver
|
|
203
204
|
*
|
|
204
205
|
* @param rawBalances - Current balances (may already have collateral reserved)
|
|
205
206
|
* @param pendingRebalances - In-flight rebalance operations (in_progress only)
|
|
@@ -211,21 +212,55 @@ export class BaseStrategy {
|
|
|
211
212
|
}
|
|
212
213
|
const simulated = { ...rawBalances };
|
|
213
214
|
for (const rebalance of pendingRebalances) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
215
|
+
if (rebalance.executionMethod === 'inventory') {
|
|
216
|
+
// Inventory: simulate eventual final state
|
|
217
|
+
const total = rebalance.amount;
|
|
218
|
+
const delivered = rebalance.deliveredAmount ?? 0n;
|
|
219
|
+
const awaiting = rebalance.awaitingDeliveryAmount ?? 0n;
|
|
220
|
+
// Destination: add unfulfilled amount (total - delivered - awaiting)
|
|
221
|
+
// This is what's NOT yet reflected in on-chain balance
|
|
222
|
+
const destinationAdjustment = total - delivered - awaiting;
|
|
223
|
+
if (destinationAdjustment > 0n) {
|
|
224
|
+
simulated[rebalance.destination] =
|
|
225
|
+
(simulated[rebalance.destination] ?? 0n) + destinationAdjustment;
|
|
226
|
+
this.logger.debug({
|
|
227
|
+
context: this.constructor.name,
|
|
228
|
+
destination: rebalance.destination,
|
|
229
|
+
destinationAdjustment: destinationAdjustment.toString(),
|
|
230
|
+
}, 'Simulated inventory rebalance (destination increase for unfulfilled)');
|
|
231
|
+
}
|
|
232
|
+
// Origin: subtract pending amount (total - delivered)
|
|
233
|
+
// This is what WILL decrease when all messages deliver
|
|
234
|
+
const originAdjustment = total - delivered;
|
|
235
|
+
if (originAdjustment > 0n) {
|
|
236
|
+
simulated[rebalance.origin] =
|
|
237
|
+
(simulated[rebalance.origin] ?? 0n) - originAdjustment;
|
|
238
|
+
this.logger.debug({
|
|
239
|
+
context: this.constructor.name,
|
|
240
|
+
origin: rebalance.origin,
|
|
241
|
+
originAdjustment: originAdjustment.toString(),
|
|
242
|
+
}, 'Simulated inventory rebalance (origin decrease for pending)');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
// Movable collateral: origin already deducted on-chain, add to destination
|
|
247
|
+
simulated[rebalance.destination] =
|
|
248
|
+
(simulated[rebalance.destination] ?? 0n) + rebalance.amount;
|
|
249
|
+
this.logger.debug({
|
|
250
|
+
context: this.constructor.name,
|
|
251
|
+
destination: rebalance.destination,
|
|
252
|
+
amount: rebalance.amount.toString(),
|
|
253
|
+
}, 'Simulated movable collateral rebalance (destination increase)');
|
|
254
|
+
}
|
|
223
255
|
}
|
|
224
256
|
this.logger.info({
|
|
225
257
|
simulations: pendingRebalances.map((r) => ({
|
|
226
258
|
from: r.origin,
|
|
227
259
|
to: r.destination,
|
|
228
260
|
amount: r.amount.toString(),
|
|
261
|
+
executionMethod: r.executionMethod ?? 'movable_collateral',
|
|
262
|
+
deliveredAmount: r.deliveredAmount?.toString() ?? '0',
|
|
263
|
+
awaitingDeliveryAmount: r.awaitingDeliveryAmount?.toString() ?? '0',
|
|
229
264
|
})),
|
|
230
265
|
}, 'Simulated pending rebalances');
|
|
231
266
|
return simulated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseStrategy.js","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseStrategy.js","sourceRoot":"","sources":["../../src/strategy/BaseStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { type ChainMap, type Token } from '@hyperlane-xyz/sdk';
|
|
|
3
3
|
import { type CollateralDeficitStrategyConfig, RebalancerStrategyOptions } from '../config/types.js';
|
|
4
4
|
import type { InflightContext, RawBalances, Route, StrategyRoute } from '../interfaces/IStrategy.js';
|
|
5
5
|
import { Metrics } from '../metrics/Metrics.js';
|
|
6
|
-
import type
|
|
6
|
+
import { type BridgeConfigWithOverride } from '../utils/bridgeUtils.js';
|
|
7
7
|
import { BaseStrategy, type Delta } from './BaseStrategy.js';
|
|
8
8
|
/**
|
|
9
9
|
* Strategy that detects collateral deficits (negative effective balances)
|