@humanode-hyperlane/rebalancer 0.0.0-stage → 27.2.2-humanode.1
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/LICENSE.md +193 -0
- package/README.md +297 -2
- package/dist/bridges/LiFiBridge.d.ts +93 -0
- package/dist/bridges/LiFiBridge.d.ts.map +1 -0
- package/dist/bridges/LiFiBridge.js +527 -0
- package/dist/bridges/LiFiBridge.js.map +1 -0
- package/dist/bridges/LiFiBridge.test.d.ts +2 -0
- package/dist/bridges/LiFiBridge.test.d.ts.map +1 -0
- package/dist/bridges/LiFiBridge.test.js +504 -0
- package/dist/bridges/LiFiBridge.test.js.map +1 -0
- package/dist/config/RebalancerConfig.d.ts +20 -0
- package/dist/config/RebalancerConfig.d.ts.map +1 -0
- package/dist/config/RebalancerConfig.js +35 -0
- package/dist/config/RebalancerConfig.js.map +1 -0
- package/dist/config/RebalancerConfig.test.d.ts +2 -0
- package/dist/config/RebalancerConfig.test.d.ts.map +1 -0
- package/dist/config/RebalancerConfig.test.js +798 -0
- package/dist/config/RebalancerConfig.test.js.map +1 -0
- package/dist/config/types.d.ts +3008 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +451 -0
- package/dist/config/types.js.map +1 -0
- package/dist/core/InventoryRebalancer.d.ts +201 -0
- package/dist/core/InventoryRebalancer.d.ts.map +1 -0
- package/dist/core/InventoryRebalancer.js +994 -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 +1511 -0
- package/dist/core/InventoryRebalancer.test.js.map +1 -0
- package/dist/core/Rebalancer.d.ts +37 -0
- package/dist/core/Rebalancer.d.ts.map +1 -0
- package/dist/core/Rebalancer.js +433 -0
- package/dist/core/Rebalancer.js.map +1 -0
- package/dist/core/Rebalancer.test.d.ts +2 -0
- package/dist/core/Rebalancer.test.d.ts.map +1 -0
- package/dist/core/Rebalancer.test.js +424 -0
- package/dist/core/Rebalancer.test.js.map +1 -0
- package/dist/core/RebalancerOrchestrator.d.ts +56 -0
- package/dist/core/RebalancerOrchestrator.d.ts.map +1 -0
- package/dist/core/RebalancerOrchestrator.js +154 -0
- package/dist/core/RebalancerOrchestrator.js.map +1 -0
- 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 +721 -0
- package/dist/core/RebalancerOrchestrator.test.js.map +1 -0
- package/dist/core/RebalancerService.d.ts +127 -0
- package/dist/core/RebalancerService.d.ts.map +1 -0
- package/dist/core/RebalancerService.js +270 -0
- package/dist/core/RebalancerService.js.map +1 -0
- package/dist/core/RebalancerService.test.d.ts +2 -0
- package/dist/core/RebalancerService.test.d.ts.map +1 -0
- package/dist/core/RebalancerService.test.js +777 -0
- package/dist/core/RebalancerService.test.js.map +1 -0
- package/dist/e2e/collateral-deficit.e2e-test.d.ts +2 -0
- package/dist/e2e/collateral-deficit.e2e-test.d.ts.map +1 -0
- package/dist/e2e/collateral-deficit.e2e-test.js +227 -0
- package/dist/e2e/collateral-deficit.e2e-test.js.map +1 -0
- package/dist/e2e/composite.e2e-test.d.ts +2 -0
- package/dist/e2e/composite.e2e-test.d.ts.map +1 -0
- package/dist/e2e/composite.e2e-test.js +666 -0
- package/dist/e2e/composite.e2e-test.js.map +1 -0
- package/dist/e2e/fixtures/routes.d.ts +89 -0
- package/dist/e2e/fixtures/routes.d.ts.map +1 -0
- package/dist/e2e/fixtures/routes.js +420 -0
- package/dist/e2e/fixtures/routes.js.map +1 -0
- package/dist/e2e/harness/BaseLocalDeploymentManager.d.ts +38 -0
- package/dist/e2e/harness/BaseLocalDeploymentManager.d.ts.map +1 -0
- package/dist/e2e/harness/BaseLocalDeploymentManager.js +144 -0
- package/dist/e2e/harness/BaseLocalDeploymentManager.js.map +1 -0
- package/dist/e2e/harness/BridgeSetup.d.ts +11 -0
- package/dist/e2e/harness/BridgeSetup.d.ts.map +1 -0
- package/dist/e2e/harness/BridgeSetup.js +50 -0
- package/dist/e2e/harness/BridgeSetup.js.map +1 -0
- package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.d.ts +13 -0
- package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.d.ts.map +1 -0
- package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.js +105 -0
- package/dist/e2e/harness/Erc20InventoryLocalDeploymentManager.js.map +1 -0
- package/dist/e2e/harness/Erc20LocalDeploymentManager.d.ts +11 -0
- package/dist/e2e/harness/Erc20LocalDeploymentManager.d.ts.map +1 -0
- package/dist/e2e/harness/Erc20LocalDeploymentManager.js +105 -0
- package/dist/e2e/harness/Erc20LocalDeploymentManager.js.map +1 -0
- package/dist/e2e/harness/ForkIndexer.d.ts +23 -0
- package/dist/e2e/harness/ForkIndexer.d.ts.map +1 -0
- package/dist/e2e/harness/ForkIndexer.js +127 -0
- package/dist/e2e/harness/ForkIndexer.js.map +1 -0
- package/dist/e2e/harness/ForkIndexer.test.d.ts +2 -0
- package/dist/e2e/harness/ForkIndexer.test.d.ts.map +1 -0
- package/dist/e2e/harness/ForkIndexer.test.js +257 -0
- package/dist/e2e/harness/ForkIndexer.test.js.map +1 -0
- package/dist/e2e/harness/MixedLocalDeploymentManager.d.ts +21 -0
- package/dist/e2e/harness/MixedLocalDeploymentManager.d.ts.map +1 -0
- package/dist/e2e/harness/MixedLocalDeploymentManager.js +115 -0
- package/dist/e2e/harness/MixedLocalDeploymentManager.js.map +1 -0
- package/dist/e2e/harness/MockExplorerClient.d.ts +23 -0
- package/dist/e2e/harness/MockExplorerClient.d.ts.map +1 -0
- package/dist/e2e/harness/MockExplorerClient.js +57 -0
- package/dist/e2e/harness/MockExplorerClient.js.map +1 -0
- package/dist/e2e/harness/MockExternalBridge.d.ts +32 -0
- package/dist/e2e/harness/MockExternalBridge.d.ts.map +1 -0
- package/dist/e2e/harness/MockExternalBridge.js +247 -0
- package/dist/e2e/harness/MockExternalBridge.js.map +1 -0
- package/dist/e2e/harness/NativeLocalDeploymentManager.d.ts +13 -0
- package/dist/e2e/harness/NativeLocalDeploymentManager.d.ts.map +1 -0
- package/dist/e2e/harness/NativeLocalDeploymentManager.js +91 -0
- package/dist/e2e/harness/NativeLocalDeploymentManager.js.map +1 -0
- package/dist/e2e/harness/SnapshotHelper.d.ts +13 -0
- package/dist/e2e/harness/SnapshotHelper.d.ts.map +1 -0
- package/dist/e2e/harness/SnapshotHelper.js +36 -0
- package/dist/e2e/harness/SnapshotHelper.js.map +1 -0
- package/dist/e2e/harness/TestHelpers.d.ts +25 -0
- package/dist/e2e/harness/TestHelpers.d.ts.map +1 -0
- package/dist/e2e/harness/TestHelpers.js +103 -0
- package/dist/e2e/harness/TestHelpers.js.map +1 -0
- package/dist/e2e/harness/TestRebalancer.d.ts +85 -0
- package/dist/e2e/harness/TestRebalancer.d.ts.map +1 -0
- package/dist/e2e/harness/TestRebalancer.js +427 -0
- package/dist/e2e/harness/TestRebalancer.js.map +1 -0
- package/dist/e2e/harness/TransferHelper.d.ts +34 -0
- package/dist/e2e/harness/TransferHelper.d.ts.map +1 -0
- package/dist/e2e/harness/TransferHelper.js +93 -0
- package/dist/e2e/harness/TransferHelper.js.map +1 -0
- package/dist/e2e/inventory-erc20-minAmount.e2e-test.d.ts +2 -0
- package/dist/e2e/inventory-erc20-minAmount.e2e-test.d.ts.map +1 -0
- package/dist/e2e/inventory-erc20-minAmount.e2e-test.js +411 -0
- package/dist/e2e/inventory-erc20-minAmount.e2e-test.js.map +1 -0
- package/dist/e2e/inventory-erc20-weighted.e2e-test.d.ts +2 -0
- package/dist/e2e/inventory-erc20-weighted.e2e-test.d.ts.map +1 -0
- package/dist/e2e/inventory-erc20-weighted.e2e-test.js +408 -0
- package/dist/e2e/inventory-erc20-weighted.e2e-test.js.map +1 -0
- package/dist/e2e/inventory-minAmount.e2e-test.d.ts +2 -0
- package/dist/e2e/inventory-minAmount.e2e-test.d.ts.map +1 -0
- package/dist/e2e/inventory-minAmount.e2e-test.js +411 -0
- package/dist/e2e/inventory-minAmount.e2e-test.js.map +1 -0
- package/dist/e2e/inventory-weighted.e2e-test.d.ts +2 -0
- package/dist/e2e/inventory-weighted.e2e-test.d.ts.map +1 -0
- package/dist/e2e/inventory-weighted.e2e-test.js +409 -0
- package/dist/e2e/inventory-weighted.e2e-test.js.map +1 -0
- package/dist/e2e/minAmount.e2e-test.d.ts +2 -0
- package/dist/e2e/minAmount.e2e-test.d.ts.map +1 -0
- package/dist/e2e/minAmount.e2e-test.js +203 -0
- package/dist/e2e/minAmount.e2e-test.js.map +1 -0
- package/dist/e2e/mixed-weighted.e2e-test.d.ts +2 -0
- package/dist/e2e/mixed-weighted.e2e-test.d.ts.map +1 -0
- package/dist/e2e/mixed-weighted.e2e-test.js +189 -0
- package/dist/e2e/mixed-weighted.e2e-test.js.map +1 -0
- package/dist/e2e/weighted.e2e-test.d.ts +2 -0
- package/dist/e2e/weighted.e2e-test.d.ts.map +1 -0
- package/dist/e2e/weighted.e2e-test.js +198 -0
- package/dist/e2e/weighted.e2e-test.js.map +1 -0
- package/dist/factories/RebalancerContextFactory.d.ts +89 -0
- package/dist/factories/RebalancerContextFactory.d.ts.map +1 -0
- package/dist/factories/RebalancerContextFactory.js +420 -0
- package/dist/factories/RebalancerContextFactory.js.map +1 -0
- package/dist/factories/RebalancerContextFactory.test.d.ts +2 -0
- package/dist/factories/RebalancerContextFactory.test.d.ts.map +1 -0
- package/dist/factories/RebalancerContextFactory.test.js +270 -0
- package/dist/factories/RebalancerContextFactory.test.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/IExternalBridge.d.ts +103 -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/IMetrics.d.ts +5 -0
- package/dist/interfaces/IMetrics.d.ts.map +1 -0
- package/dist/interfaces/IMetrics.js +2 -0
- package/dist/interfaces/IMetrics.js.map +1 -0
- package/dist/interfaces/IMonitor.d.ts +50 -0
- package/dist/interfaces/IMonitor.d.ts.map +1 -0
- package/dist/interfaces/IMonitor.js +14 -0
- package/dist/interfaces/IMonitor.js.map +1 -0
- package/dist/interfaces/IRebalancer.d.ts +31 -0
- package/dist/interfaces/IRebalancer.d.ts.map +1 -0
- package/dist/interfaces/IRebalancer.js +2 -0
- package/dist/interfaces/IRebalancer.js.map +1 -0
- package/dist/interfaces/IStrategy.d.ts +60 -0
- package/dist/interfaces/IStrategy.d.ts.map +1 -0
- package/dist/interfaces/IStrategy.js +13 -0
- package/dist/interfaces/IStrategy.js.map +1 -0
- package/dist/metrics/Metrics.d.ts +25 -0
- package/dist/metrics/Metrics.d.ts.map +1 -0
- package/dist/metrics/Metrics.js +164 -0
- package/dist/metrics/Metrics.js.map +1 -0
- package/dist/metrics/PriceGetter.d.ts +10 -0
- package/dist/metrics/PriceGetter.d.ts.map +1 -0
- package/dist/metrics/PriceGetter.js +41 -0
- package/dist/metrics/PriceGetter.js.map +1 -0
- package/dist/metrics/scripts/metrics.d.ts +28 -0
- package/dist/metrics/scripts/metrics.d.ts.map +1 -0
- package/dist/metrics/scripts/metrics.js +61 -0
- package/dist/metrics/scripts/metrics.js.map +1 -0
- package/dist/monitor/Monitor.d.ts +40 -0
- package/dist/monitor/Monitor.d.ts.map +1 -0
- package/dist/monitor/Monitor.js +211 -0
- package/dist/monitor/Monitor.js.map +1 -0
- package/dist/service.d.ts +3 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +205 -0
- package/dist/service.js.map +1 -0
- package/dist/strategy/BaseStrategy.d.ts +86 -0
- package/dist/strategy/BaseStrategy.d.ts.map +1 -0
- package/dist/strategy/BaseStrategy.js +342 -0
- package/dist/strategy/BaseStrategy.js.map +1 -0
- package/dist/strategy/CollateralDeficitStrategy.d.ts +65 -0
- package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -0
- package/dist/strategy/CollateralDeficitStrategy.js +253 -0
- package/dist/strategy/CollateralDeficitStrategy.js.map +1 -0
- package/dist/strategy/CollateralDeficitStrategy.test.d.ts +2 -0
- package/dist/strategy/CollateralDeficitStrategy.test.d.ts.map +1 -0
- package/dist/strategy/CollateralDeficitStrategy.test.js +497 -0
- package/dist/strategy/CollateralDeficitStrategy.test.js.map +1 -0
- package/dist/strategy/CompositeStrategy.d.ts +18 -0
- package/dist/strategy/CompositeStrategy.d.ts.map +1 -0
- package/dist/strategy/CompositeStrategy.js +63 -0
- package/dist/strategy/CompositeStrategy.js.map +1 -0
- package/dist/strategy/CompositeStrategy.test.d.ts +2 -0
- package/dist/strategy/CompositeStrategy.test.d.ts.map +1 -0
- package/dist/strategy/CompositeStrategy.test.js +278 -0
- package/dist/strategy/CompositeStrategy.test.js.map +1 -0
- package/dist/strategy/MinAmountStrategy.d.ts +35 -0
- package/dist/strategy/MinAmountStrategy.d.ts.map +1 -0
- package/dist/strategy/MinAmountStrategy.js +112 -0
- package/dist/strategy/MinAmountStrategy.js.map +1 -0
- package/dist/strategy/MinAmountStrategy.test.d.ts +2 -0
- package/dist/strategy/MinAmountStrategy.test.d.ts.map +1 -0
- package/dist/strategy/MinAmountStrategy.test.js +547 -0
- package/dist/strategy/MinAmountStrategy.test.js.map +1 -0
- package/dist/strategy/StrategyFactory.d.ts +27 -0
- package/dist/strategy/StrategyFactory.d.ts.map +1 -0
- package/dist/strategy/StrategyFactory.js +79 -0
- package/dist/strategy/StrategyFactory.js.map +1 -0
- package/dist/strategy/StrategyFactory.test.d.ts +2 -0
- package/dist/strategy/StrategyFactory.test.d.ts.map +1 -0
- package/dist/strategy/StrategyFactory.test.js +81 -0
- package/dist/strategy/StrategyFactory.test.js.map +1 -0
- package/dist/strategy/WeightedStrategy.d.ts +32 -0
- package/dist/strategy/WeightedStrategy.d.ts.map +1 -0
- package/dist/strategy/WeightedStrategy.js +73 -0
- package/dist/strategy/WeightedStrategy.js.map +1 -0
- package/dist/strategy/WeightedStrategy.test.d.ts +2 -0
- package/dist/strategy/WeightedStrategy.test.d.ts.map +1 -0
- package/dist/strategy/WeightedStrategy.test.js +403 -0
- package/dist/strategy/WeightedStrategy.test.js.map +1 -0
- package/dist/strategy/index.d.ts +7 -0
- package/dist/strategy/index.d.ts.map +1 -0
- package/dist/strategy/index.js +7 -0
- package/dist/strategy/index.js.map +1 -0
- package/dist/test/helpers.d.ts +99 -0
- package/dist/test/helpers.d.ts.map +1 -0
- package/dist/test/helpers.js +311 -0
- package/dist/test/helpers.js.map +1 -0
- package/dist/test/lifiMocks.d.ts +52 -0
- package/dist/test/lifiMocks.d.ts.map +1 -0
- package/dist/test/lifiMocks.js +160 -0
- package/dist/test/lifiMocks.js.map +1 -0
- package/dist/tracking/ActionTracker.d.ts +90 -0
- package/dist/tracking/ActionTracker.d.ts.map +1 -0
- package/dist/tracking/ActionTracker.js +678 -0
- package/dist/tracking/ActionTracker.js.map +1 -0
- package/dist/tracking/ActionTracker.test.d.ts +2 -0
- package/dist/tracking/ActionTracker.test.d.ts.map +1 -0
- package/dist/tracking/ActionTracker.test.js +1351 -0
- package/dist/tracking/ActionTracker.test.js.map +1 -0
- package/dist/tracking/IActionTracker.d.ts +157 -0
- package/dist/tracking/IActionTracker.d.ts.map +1 -0
- package/dist/tracking/IActionTracker.js +2 -0
- package/dist/tracking/IActionTracker.js.map +1 -0
- package/dist/tracking/InflightContextAdapter.d.ts +18 -0
- package/dist/tracking/InflightContextAdapter.d.ts.map +1 -0
- package/dist/tracking/InflightContextAdapter.js +52 -0
- package/dist/tracking/InflightContextAdapter.js.map +1 -0
- package/dist/tracking/InflightContextAdapter.test.d.ts +2 -0
- package/dist/tracking/InflightContextAdapter.test.d.ts.map +1 -0
- package/dist/tracking/InflightContextAdapter.test.js +175 -0
- package/dist/tracking/InflightContextAdapter.test.js.map +1 -0
- package/dist/tracking/store/IStore.d.ts +41 -0
- package/dist/tracking/store/IStore.d.ts.map +1 -0
- package/dist/tracking/store/IStore.js +2 -0
- package/dist/tracking/store/IStore.js.map +1 -0
- package/dist/tracking/store/InMemoryStore.d.ts +21 -0
- package/dist/tracking/store/InMemoryStore.d.ts.map +1 -0
- package/dist/tracking/store/InMemoryStore.js +40 -0
- package/dist/tracking/store/InMemoryStore.js.map +1 -0
- package/dist/tracking/store/InMemoryStore.test.d.ts +2 -0
- package/dist/tracking/store/InMemoryStore.test.d.ts.map +1 -0
- package/dist/tracking/store/InMemoryStore.test.js +290 -0
- package/dist/tracking/store/InMemoryStore.test.js.map +1 -0
- package/dist/tracking/store/index.d.ts +3 -0
- package/dist/tracking/store/index.d.ts.map +1 -0
- package/dist/tracking/store/index.js +2 -0
- package/dist/tracking/store/index.js.map +1 -0
- package/dist/tracking/types.d.ts +77 -0
- package/dist/tracking/types.d.ts.map +1 -0
- package/dist/tracking/types.js +2 -0
- package/dist/tracking/types.js.map +1 -0
- package/dist/utils/ExplorerClient.d.ts +68 -0
- package/dist/utils/ExplorerClient.d.ts.map +1 -0
- package/dist/utils/ExplorerClient.js +324 -0
- package/dist/utils/ExplorerClient.js.map +1 -0
- package/dist/utils/ExplorerClient.test.d.ts +2 -0
- package/dist/utils/ExplorerClient.test.d.ts.map +1 -0
- package/dist/utils/ExplorerClient.test.js +261 -0
- package/dist/utils/ExplorerClient.test.js.map +1 -0
- package/dist/utils/balanceUtils.d.ts +12 -0
- package/dist/utils/balanceUtils.d.ts.map +1 -0
- package/dist/utils/balanceUtils.js +40 -0
- package/dist/utils/balanceUtils.js.map +1 -0
- package/dist/utils/balanceUtils.test.d.ts +2 -0
- package/dist/utils/balanceUtils.test.d.ts.map +1 -0
- package/dist/utils/balanceUtils.test.js +55 -0
- package/dist/utils/balanceUtils.test.js.map +1 -0
- package/dist/utils/blockTag.d.ts +14 -0
- package/dist/utils/blockTag.d.ts.map +1 -0
- package/dist/utils/blockTag.js +46 -0
- package/dist/utils/blockTag.js.map +1 -0
- package/dist/utils/bridgeUtils.d.ts +40 -0
- package/dist/utils/bridgeUtils.d.ts.map +1 -0
- package/dist/utils/bridgeUtils.js +54 -0
- package/dist/utils/bridgeUtils.js.map +1 -0
- package/dist/utils/bridgeUtils.test.d.ts +2 -0
- package/dist/utils/bridgeUtils.test.d.ts.map +1 -0
- package/dist/utils/bridgeUtils.test.js +163 -0
- package/dist/utils/bridgeUtils.test.js.map +1 -0
- package/dist/utils/errors.d.ts +4 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +6 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gasEstimation.d.ts +65 -0
- package/dist/utils/gasEstimation.d.ts.map +1 -0
- package/dist/utils/gasEstimation.js +206 -0
- package/dist/utils/gasEstimation.js.map +1 -0
- package/dist/utils/solanaKeyParser.d.ts +10 -0
- package/dist/utils/solanaKeyParser.d.ts.map +1 -0
- package/dist/utils/solanaKeyParser.js +87 -0
- package/dist/utils/solanaKeyParser.js.map +1 -0
- package/dist/utils/solanaKeyParser.test.d.ts +2 -0
- package/dist/utils/solanaKeyParser.test.d.ts.map +1 -0
- package/dist/utils/solanaKeyParser.test.js +71 -0
- package/dist/utils/solanaKeyParser.test.js.map +1 -0
- package/dist/utils/tokenUtils.d.ts +38 -0
- package/dist/utils/tokenUtils.d.ts.map +1 -0
- package/dist/utils/tokenUtils.js +65 -0
- package/dist/utils/tokenUtils.js.map +1 -0
- package/dist/utils/transactionUtils.d.ts +22 -0
- package/dist/utils/transactionUtils.d.ts.map +1 -0
- package/dist/utils/transactionUtils.js +26 -0
- package/dist/utils/transactionUtils.js.map +1 -0
- package/package.json +87 -3
- package/src/bridges/LiFiBridge.test.ts +615 -0
- package/src/bridges/LiFiBridge.ts +731 -0
- package/src/config/RebalancerConfig.test.ts +921 -0
- package/src/config/RebalancerConfig.ts +63 -0
- package/src/config/types.ts +613 -0
- package/src/core/InventoryRebalancer.test.ts +1858 -0
- package/src/core/InventoryRebalancer.ts +1455 -0
- package/src/core/Rebalancer.test.ts +686 -0
- package/src/core/Rebalancer.ts +686 -0
- package/src/core/RebalancerOrchestrator.test.ts +871 -0
- package/src/core/RebalancerOrchestrator.ts +273 -0
- package/src/core/RebalancerService.test.ts +1094 -0
- package/src/core/RebalancerService.ts +412 -0
- package/src/e2e/E2E_TEST_CONVENTIONS.md +222 -0
- package/src/e2e/collateral-deficit.e2e-test.ts +403 -0
- package/src/e2e/composite.e2e-test.ts +1008 -0
- package/src/e2e/fixtures/routes.ts +532 -0
- package/src/e2e/harness/BaseLocalDeploymentManager.ts +246 -0
- package/src/e2e/harness/BridgeSetup.ts +95 -0
- package/src/e2e/harness/Erc20InventoryLocalDeploymentManager.ts +183 -0
- package/src/e2e/harness/Erc20LocalDeploymentManager.ts +190 -0
- package/src/e2e/harness/ForkIndexer.test.ts +448 -0
- package/src/e2e/harness/ForkIndexer.ts +183 -0
- package/src/e2e/harness/MixedLocalDeploymentManager.ts +196 -0
- package/src/e2e/harness/MockExplorerClient.ts +94 -0
- package/src/e2e/harness/MockExternalBridge.ts +411 -0
- package/src/e2e/harness/NativeLocalDeploymentManager.ts +138 -0
- package/src/e2e/harness/SnapshotHelper.ts +56 -0
- package/src/e2e/harness/TestHelpers.ts +169 -0
- package/src/e2e/harness/TestRebalancer.ts +758 -0
- package/src/e2e/harness/TransferHelper.ts +188 -0
- package/src/e2e/inventory-erc20-minAmount.e2e-test.ts +735 -0
- package/src/e2e/inventory-erc20-weighted.e2e-test.ts +733 -0
- package/src/e2e/inventory-minAmount.e2e-test.ts +734 -0
- package/src/e2e/inventory-weighted.e2e-test.ts +734 -0
- package/src/e2e/minAmount.e2e-test.ts +313 -0
- package/src/e2e/mixed-weighted.e2e-test.ts +267 -0
- package/src/e2e/weighted.e2e-test.ts +304 -0
- package/src/factories/RebalancerContextFactory.test.ts +394 -0
- package/src/factories/RebalancerContextFactory.ts +771 -0
- package/src/index.ts +125 -0
- package/src/interfaces/IExternalBridge.ts +117 -0
- package/src/interfaces/IMetrics.ts +5 -0
- package/src/interfaces/IMonitor.ts +71 -0
- package/src/interfaces/IRebalancer.ts +57 -0
- package/src/interfaces/IStrategy.ts +81 -0
- package/src/metrics/Metrics.ts +335 -0
- package/src/metrics/PriceGetter.ts +74 -0
- package/src/metrics/scripts/metrics.ts +139 -0
- package/src/monitor/Monitor.ts +324 -0
- package/src/service.ts +285 -0
- package/src/strategy/BaseStrategy.ts +553 -0
- package/src/strategy/CollateralDeficitStrategy.test.ts +728 -0
- package/src/strategy/CollateralDeficitStrategy.ts +421 -0
- package/src/strategy/CompositeStrategy.test.ts +418 -0
- package/src/strategy/CompositeStrategy.ts +102 -0
- package/src/strategy/MinAmountStrategy.test.ts +732 -0
- package/src/strategy/MinAmountStrategy.ts +200 -0
- package/src/strategy/StrategyFactory.test.ts +108 -0
- package/src/strategy/StrategyFactory.ts +157 -0
- package/src/strategy/WeightedStrategy.test.ts +529 -0
- package/src/strategy/WeightedStrategy.ts +126 -0
- package/src/strategy/index.ts +6 -0
- package/src/test/helpers.ts +477 -0
- package/src/test/lifiMocks.ts +211 -0
- package/src/tracking/ActionTracker.test.ts +1625 -0
- package/src/tracking/ActionTracker.ts +1019 -0
- package/src/tracking/IActionTracker.ts +213 -0
- package/src/tracking/InflightContextAdapter.test.ts +206 -0
- package/src/tracking/InflightContextAdapter.ts +75 -0
- package/src/tracking/store/IStore.ts +48 -0
- package/src/tracking/store/InMemoryStore.test.ts +338 -0
- package/src/tracking/store/InMemoryStore.ts +59 -0
- package/src/tracking/store/index.ts +2 -0
- package/src/tracking/types.ts +118 -0
- package/src/utils/ExplorerClient.test.ts +386 -0
- package/src/utils/ExplorerClient.ts +439 -0
- package/src/utils/balanceUtils.test.ts +79 -0
- package/src/utils/balanceUtils.ts +65 -0
- package/src/utils/blockTag.ts +68 -0
- package/src/utils/bridgeUtils.test.ts +193 -0
- package/src/utils/bridgeUtils.ts +101 -0
- package/src/utils/errors.ts +5 -0
- package/src/utils/gasEstimation.ts +306 -0
- package/src/utils/solanaKeyParser.test.ts +103 -0
- package/src/utils/solanaKeyParser.ts +117 -0
- package/src/utils/tokenUtils.ts +89 -0
- package/src/utils/transactionUtils.ts +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weighted.e2e-test.js","sourceRoot":"","sources":["../../src/e2e/weighted.e2e-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { type Logger } from 'pino';
|
|
2
|
+
import { IRegistry } from '@humanode-hyperlane/registry';
|
|
3
|
+
import { MultiProtocolProvider, MultiProvider, type Token, WarpCore, type WarpCoreConfig } from '@humanode-hyperlane/sdk';
|
|
4
|
+
import { ProtocolType } from '@humanode-hyperlane/utils';
|
|
5
|
+
import { type RebalancerConfig } from '../config/RebalancerConfig.js';
|
|
6
|
+
import { RebalancerOrchestrator } from '../core/RebalancerOrchestrator.js';
|
|
7
|
+
import type { ExternalBridgeRegistry } from '../interfaces/IExternalBridge.js';
|
|
8
|
+
import type { IRebalancer } from '../interfaces/IRebalancer.js';
|
|
9
|
+
import type { IStrategy } from '../interfaces/IStrategy.js';
|
|
10
|
+
import { Metrics } from '../metrics/Metrics.js';
|
|
11
|
+
import { type InventoryMonitorConfig, Monitor } from '../monitor/Monitor.js';
|
|
12
|
+
import type { IActionTracker } from '../tracking/IActionTracker.js';
|
|
13
|
+
import { InflightContextAdapter } from '../tracking/InflightContextAdapter.js';
|
|
14
|
+
import { type IExplorerClient } from '../utils/ExplorerClient.js';
|
|
15
|
+
export declare class RebalancerContextFactory {
|
|
16
|
+
private readonly config;
|
|
17
|
+
private readonly warpCore;
|
|
18
|
+
private readonly tokensByChainName;
|
|
19
|
+
private readonly multiProvider;
|
|
20
|
+
private readonly multiProtocolProvider;
|
|
21
|
+
private readonly registry;
|
|
22
|
+
private readonly logger;
|
|
23
|
+
private readonly inventorySignerKeysByProtocol?;
|
|
24
|
+
/**
|
|
25
|
+
* @param config - The rebalancer config
|
|
26
|
+
* @param warpCore - An instance of `WarpCore` configured for the specified `warpRouteId`.
|
|
27
|
+
* @param tokensByChainName - A map of chain->token to ease the lookup of token by chain
|
|
28
|
+
* @param multiProvider - MultiProvider instance (for movable collateral operations)
|
|
29
|
+
* @param multiProtocolProvider - MultiProtocolProvider instance (with mailbox metadata)
|
|
30
|
+
* @param registry - IRegistry instance
|
|
31
|
+
* @param logger - Logger instance
|
|
32
|
+
*/
|
|
33
|
+
private constructor();
|
|
34
|
+
/**
|
|
35
|
+
* @param config - The rebalancer config
|
|
36
|
+
* @param multiProvider - MultiProvider instance (for movable collateral operations)
|
|
37
|
+
* @param multiProtocolProvider - MultiProtocolProvider instance (optional, created from multiProvider if not provided)
|
|
38
|
+
* @param registry - IRegistry instance
|
|
39
|
+
* @param logger - Logger instance
|
|
40
|
+
*/
|
|
41
|
+
static create(config: RebalancerConfig, multiProvider: MultiProvider, multiProtocolProvider: MultiProtocolProvider | undefined, registry: IRegistry, logger: Logger, inventorySignerKeysByProtocol?: Partial<Record<ProtocolType, string>>, warpCoreConfigOverride?: WarpCoreConfig): Promise<RebalancerContextFactory>;
|
|
42
|
+
getWarpCore(): WarpCore;
|
|
43
|
+
getTokenForChain(chainName: string): Token | undefined;
|
|
44
|
+
createMetrics(coingeckoApiKey?: string): Promise<Metrics>;
|
|
45
|
+
createMonitor(checkFrequency: number, inventoryConfig?: InventoryMonitorConfig): Monitor;
|
|
46
|
+
createStrategy(metrics?: Metrics): Promise<IStrategy>;
|
|
47
|
+
private createMovableCollateralRebalancer;
|
|
48
|
+
createActionTracker(explorerUrlOrClient?: string | IExplorerClient): Promise<{
|
|
49
|
+
tracker: IActionTracker;
|
|
50
|
+
adapter: InflightContextAdapter;
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Creates inventory components for inventory-based rebalancing.
|
|
54
|
+
* Returns null if inventory config is not available.
|
|
55
|
+
*
|
|
56
|
+
* @param actionTracker - ActionTracker instance for tracking inventory actions
|
|
57
|
+
* @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
|
|
58
|
+
*/
|
|
59
|
+
private createInventoryRebalancerAndConfig;
|
|
60
|
+
private buildExternalBridgeRegistry;
|
|
61
|
+
/**
|
|
62
|
+
* Creates all rebalancers based on config execution types.
|
|
63
|
+
* Returns an array of rebalancers (movableCollateral and/or inventory)
|
|
64
|
+
* along with metadata needed for monitor and orchestrator.
|
|
65
|
+
*
|
|
66
|
+
* @param actionTracker - ActionTracker instance for tracking actions
|
|
67
|
+
* @param metrics - Optional Metrics instance
|
|
68
|
+
* @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
|
|
69
|
+
*/
|
|
70
|
+
createRebalancers(actionTracker: IActionTracker, metrics?: Metrics, externalBridgeRegistryOverride?: Partial<ExternalBridgeRegistry>): Promise<{
|
|
71
|
+
rebalancers: IRebalancer[];
|
|
72
|
+
externalBridgeRegistry: Partial<ExternalBridgeRegistry>;
|
|
73
|
+
inventoryConfig?: InventoryMonitorConfig;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a RebalancerOrchestrator with all required dependencies.
|
|
77
|
+
*/
|
|
78
|
+
createOrchestrator(options: {
|
|
79
|
+
strategy: IStrategy;
|
|
80
|
+
actionTracker: IActionTracker;
|
|
81
|
+
inflightContextAdapter: InflightContextAdapter;
|
|
82
|
+
rebalancers: IRebalancer[];
|
|
83
|
+
externalBridgeRegistry: Partial<ExternalBridgeRegistry>;
|
|
84
|
+
metrics?: Metrics;
|
|
85
|
+
}): RebalancerOrchestrator;
|
|
86
|
+
private hasMovableCollateralChains;
|
|
87
|
+
private getInitialTotalCollateral;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=RebalancerContextFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RebalancerContextFactory.d.ts","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import { MultiProtocolCore, MultiProtocolProvider, WarpCore, } from '@humanode-hyperlane/sdk';
|
|
2
|
+
import { assert, ProtocolType, objMap, toWei, } from '@humanode-hyperlane/utils';
|
|
3
|
+
import { LiFiBridge } from '../bridges/LiFiBridge.js';
|
|
4
|
+
import { ExecutionType, ExternalBridgeType, getAllBridges, getInventoryChainNames, getInventoryOriginChainNames, getOverrideExecutionType, getStrategyChainConfig, getStrategyChainNames, } from '../config/types.js';
|
|
5
|
+
import { InventoryRebalancer, } from '../core/InventoryRebalancer.js';
|
|
6
|
+
import { Rebalancer } from '../core/Rebalancer.js';
|
|
7
|
+
import { RebalancerOrchestrator } from '../core/RebalancerOrchestrator.js';
|
|
8
|
+
import { Metrics } from '../metrics/Metrics.js';
|
|
9
|
+
import { PriceGetter } from '../metrics/PriceGetter.js';
|
|
10
|
+
import { Monitor } from '../monitor/Monitor.js';
|
|
11
|
+
import { StrategyFactory } from '../strategy/StrategyFactory.js';
|
|
12
|
+
import { ActionTracker, } from '../tracking/ActionTracker.js';
|
|
13
|
+
import { InflightContextAdapter } from '../tracking/InflightContextAdapter.js';
|
|
14
|
+
import { InMemoryStore } from '../tracking/store/index.js';
|
|
15
|
+
import { ExplorerClient, } from '../utils/ExplorerClient.js';
|
|
16
|
+
import { isCollateralizedTokenEligibleForRebalancing } from '../utils/tokenUtils.js';
|
|
17
|
+
const DEFAULT_EXPLORER_URL = process.env.EXPLORER_API_URL || 'https://explorer4.hasura.app/v1/graphql';
|
|
18
|
+
export class RebalancerContextFactory {
|
|
19
|
+
config;
|
|
20
|
+
warpCore;
|
|
21
|
+
tokensByChainName;
|
|
22
|
+
multiProvider;
|
|
23
|
+
multiProtocolProvider;
|
|
24
|
+
registry;
|
|
25
|
+
logger;
|
|
26
|
+
inventorySignerKeysByProtocol;
|
|
27
|
+
/**
|
|
28
|
+
* @param config - The rebalancer config
|
|
29
|
+
* @param warpCore - An instance of `WarpCore` configured for the specified `warpRouteId`.
|
|
30
|
+
* @param tokensByChainName - A map of chain->token to ease the lookup of token by chain
|
|
31
|
+
* @param multiProvider - MultiProvider instance (for movable collateral operations)
|
|
32
|
+
* @param multiProtocolProvider - MultiProtocolProvider instance (with mailbox metadata)
|
|
33
|
+
* @param registry - IRegistry instance
|
|
34
|
+
* @param logger - Logger instance
|
|
35
|
+
*/
|
|
36
|
+
constructor(config, warpCore, tokensByChainName, multiProvider, multiProtocolProvider, registry, logger, inventorySignerKeysByProtocol) {
|
|
37
|
+
this.config = config;
|
|
38
|
+
this.warpCore = warpCore;
|
|
39
|
+
this.tokensByChainName = tokensByChainName;
|
|
40
|
+
this.multiProvider = multiProvider;
|
|
41
|
+
this.multiProtocolProvider = multiProtocolProvider;
|
|
42
|
+
this.registry = registry;
|
|
43
|
+
this.logger = logger;
|
|
44
|
+
this.inventorySignerKeysByProtocol = inventorySignerKeysByProtocol;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @param config - The rebalancer config
|
|
48
|
+
* @param multiProvider - MultiProvider instance (for movable collateral operations)
|
|
49
|
+
* @param multiProtocolProvider - MultiProtocolProvider instance (optional, created from multiProvider if not provided)
|
|
50
|
+
* @param registry - IRegistry instance
|
|
51
|
+
* @param logger - Logger instance
|
|
52
|
+
*/
|
|
53
|
+
static async create(config, multiProvider, multiProtocolProvider, registry, logger, inventorySignerKeysByProtocol, warpCoreConfigOverride) {
|
|
54
|
+
logger.debug({
|
|
55
|
+
warpRouteId: config.warpRouteId,
|
|
56
|
+
}, 'Creating RebalancerContextFactory');
|
|
57
|
+
// TODO: should we pull addressed for chains we care about, i.e those in the warp config
|
|
58
|
+
const addresses = await registry.getAddresses();
|
|
59
|
+
// The Sealevel warp adapters require the Mailbox address, so we
|
|
60
|
+
// get mailboxes for all chains and merge them with the chain metadata.
|
|
61
|
+
const mailboxes = objMap(addresses, (_, { mailbox }) => ({ mailbox }));
|
|
62
|
+
// Fetch warp route config FIRST to get chain list
|
|
63
|
+
const warpCoreConfig = warpCoreConfigOverride ??
|
|
64
|
+
(await registry.getWarpRoute(config.warpRouteId));
|
|
65
|
+
if (!warpCoreConfig) {
|
|
66
|
+
throw new Error(`Warp route config for ${config.warpRouteId} not found in registry`);
|
|
67
|
+
}
|
|
68
|
+
// Force-initialize providers for EVM warp route chains only.
|
|
69
|
+
// This ensures fromMultiProvider() snapshots actual provider instances.
|
|
70
|
+
// Non-EVM chains (StarkNet, Sealevel, etc.) don't use ethers providers
|
|
71
|
+
// and would crash if we tried to build one (e.g. non-numeric chainId).
|
|
72
|
+
const warpChains = [
|
|
73
|
+
...new Set(warpCoreConfig.tokens.map((t) => t.chainName)),
|
|
74
|
+
];
|
|
75
|
+
for (const chain of warpChains) {
|
|
76
|
+
if (multiProvider.getProtocol(chain) !== ProtocolType.Ethereum) {
|
|
77
|
+
logger.debug({ chain }, 'Skipping provider init for non-EVM chain');
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
multiProvider.getProvider(chain);
|
|
81
|
+
}
|
|
82
|
+
// Create MultiProtocolProvider (convert from MultiProvider if not provided)
|
|
83
|
+
const mpp = multiProtocolProvider ??
|
|
84
|
+
MultiProtocolProvider.fromMultiProvider(multiProvider);
|
|
85
|
+
const extendedMultiProtocolProvider = mpp.extendChainMetadata(mailboxes);
|
|
86
|
+
const warpCore = WarpCore.FromConfig(extendedMultiProtocolProvider, warpCoreConfig);
|
|
87
|
+
const tokensByChainName = Object.fromEntries(warpCore.tokens.map((t) => [t.chainName, t]));
|
|
88
|
+
logger.debug({
|
|
89
|
+
warpRouteId: config.warpRouteId,
|
|
90
|
+
}, 'RebalancerContextFactory created successfully');
|
|
91
|
+
return new RebalancerContextFactory(config, warpCore, tokensByChainName, multiProvider, extendedMultiProtocolProvider, registry, logger, inventorySignerKeysByProtocol);
|
|
92
|
+
}
|
|
93
|
+
getWarpCore() {
|
|
94
|
+
return this.warpCore;
|
|
95
|
+
}
|
|
96
|
+
getTokenForChain(chainName) {
|
|
97
|
+
return this.tokensByChainName[chainName];
|
|
98
|
+
}
|
|
99
|
+
async createMetrics(coingeckoApiKey) {
|
|
100
|
+
this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating Metrics');
|
|
101
|
+
const tokenPriceGetter = PriceGetter.create(this.multiProvider.metadata, this.logger, coingeckoApiKey);
|
|
102
|
+
const warpDeployConfig = await this.registry.getWarpDeployConfig(this.config.warpRouteId);
|
|
103
|
+
return new Metrics(tokenPriceGetter, warpDeployConfig, this.warpCore, this.config.warpRouteId, this.logger);
|
|
104
|
+
}
|
|
105
|
+
createMonitor(checkFrequency, inventoryConfig) {
|
|
106
|
+
this.logger.debug({
|
|
107
|
+
warpRouteId: this.config.warpRouteId,
|
|
108
|
+
checkFrequency: checkFrequency,
|
|
109
|
+
}, 'Creating Monitor');
|
|
110
|
+
return new Monitor(checkFrequency, this.warpCore, this.logger, inventoryConfig);
|
|
111
|
+
}
|
|
112
|
+
async createStrategy(metrics) {
|
|
113
|
+
const strategyTypes = this.config.strategyConfig.map((s) => s.rebalanceStrategy);
|
|
114
|
+
this.logger.debug({
|
|
115
|
+
warpRouteId: this.config.warpRouteId,
|
|
116
|
+
strategyTypes,
|
|
117
|
+
strategyCount: this.config.strategyConfig.length,
|
|
118
|
+
}, 'Creating Strategy');
|
|
119
|
+
// Build minAmountsByChain from chain configs
|
|
120
|
+
const chainNames = getStrategyChainNames(this.config.strategyConfig);
|
|
121
|
+
const minAmountsByChain = {};
|
|
122
|
+
for (const chainName of chainNames) {
|
|
123
|
+
const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
|
|
124
|
+
if (chainConfig?.bridgeMinAcceptedAmount) {
|
|
125
|
+
const token = this.tokensByChainName[chainName];
|
|
126
|
+
const decimals = token?.decimals ?? 18;
|
|
127
|
+
minAmountsByChain[chainName] = BigInt(toWei(chainConfig.bridgeMinAcceptedAmount, decimals));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
this.logger.debug({
|
|
131
|
+
minAmountsByChain: Object.fromEntries(Object.entries(minAmountsByChain).map(([k, v]) => [k, v.toString()])),
|
|
132
|
+
}, 'Built minimum amounts by chain for strategy');
|
|
133
|
+
return StrategyFactory.createStrategy(this.config.strategyConfig, this.tokensByChainName, await this.getInitialTotalCollateral(), this.logger, metrics, minAmountsByChain);
|
|
134
|
+
}
|
|
135
|
+
createMovableCollateralRebalancer(actionTracker, metrics) {
|
|
136
|
+
this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating Rebalancer');
|
|
137
|
+
const rebalancer = new Rebalancer(this.warpCore, this.multiProvider.metadata, this.tokensByChainName, this.multiProvider, actionTracker, this.logger, metrics);
|
|
138
|
+
return rebalancer;
|
|
139
|
+
}
|
|
140
|
+
async createActionTracker(explorerUrlOrClient = DEFAULT_EXPLORER_URL) {
|
|
141
|
+
this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating ActionTracker');
|
|
142
|
+
const transferStore = new InMemoryStore();
|
|
143
|
+
const intentStore = new InMemoryStore();
|
|
144
|
+
const actionStore = new InMemoryStore();
|
|
145
|
+
const explorerClient = typeof explorerUrlOrClient === 'string'
|
|
146
|
+
? new ExplorerClient(explorerUrlOrClient, (domain) => this.multiProvider.getProtocol(domain))
|
|
147
|
+
: explorerUrlOrClient;
|
|
148
|
+
// 3. Get MultiProtocolCore from registry (supports all VM types)
|
|
149
|
+
// Only fetch/validate addresses for warp route chains (not all registry chains)
|
|
150
|
+
const warpRouteChains = new Set(this.warpCore.tokens.map((t) => t.chainName));
|
|
151
|
+
const coreAddresses = {};
|
|
152
|
+
for (const chain of warpRouteChains) {
|
|
153
|
+
const addrs = await this.registry.getChainAddresses(chain);
|
|
154
|
+
if (!addrs?.mailbox) {
|
|
155
|
+
throw new Error(`Missing mailbox address for chain ${chain} in registry`);
|
|
156
|
+
}
|
|
157
|
+
coreAddresses[chain] = addrs;
|
|
158
|
+
}
|
|
159
|
+
const multiProtocolCore = MultiProtocolCore.fromAddressesMap(coreAddresses, this.multiProtocolProvider);
|
|
160
|
+
// 4. Get rebalancer address from signer
|
|
161
|
+
// Use the first chain in the strategy to get the signer address
|
|
162
|
+
const chainNames = getStrategyChainNames(this.config.strategyConfig);
|
|
163
|
+
if (chainNames.length === 0) {
|
|
164
|
+
throw new Error('No chains configured in strategy');
|
|
165
|
+
}
|
|
166
|
+
const signer = this.multiProvider.getSigner(chainNames[0]);
|
|
167
|
+
const rebalancerAddress = await signer.getAddress();
|
|
168
|
+
const bridges = getAllBridges(this.config.strategyConfig);
|
|
169
|
+
// Build router→domain mapping (source of truth for routers and domains)
|
|
170
|
+
const routersByDomain = {};
|
|
171
|
+
for (const token of this.warpCore.tokens) {
|
|
172
|
+
const domain = this.multiProvider.getDomainId(token.chainName);
|
|
173
|
+
routersByDomain[domain] = token.addressOrDenom;
|
|
174
|
+
}
|
|
175
|
+
const trackerConfig = {
|
|
176
|
+
routersByDomain,
|
|
177
|
+
bridges,
|
|
178
|
+
rebalancerAddress,
|
|
179
|
+
inventorySignerAddresses: this.config.inventorySigners
|
|
180
|
+
? Object.entries(this.config.inventorySigners)
|
|
181
|
+
.filter(([protocol]) => protocol === ProtocolType.Ethereum)
|
|
182
|
+
.map(([, signerConfig]) => signerConfig)
|
|
183
|
+
.map((s) => s.address)
|
|
184
|
+
.filter(Boolean)
|
|
185
|
+
: undefined,
|
|
186
|
+
intentTTL: this.config.intentTTL,
|
|
187
|
+
};
|
|
188
|
+
// 6. Create ActionTracker
|
|
189
|
+
const tracker = new ActionTracker(transferStore, intentStore, actionStore, explorerClient, multiProtocolCore, trackerConfig, this.logger);
|
|
190
|
+
// 7. Create InflightContextAdapter
|
|
191
|
+
const adapter = new InflightContextAdapter(tracker, this.multiProvider);
|
|
192
|
+
this.logger.debug({
|
|
193
|
+
warpRouteId: this.config.warpRouteId,
|
|
194
|
+
routerCount: Object.keys(routersByDomain).length,
|
|
195
|
+
bridgeCount: bridges.length,
|
|
196
|
+
domainCount: Object.keys(routersByDomain).length,
|
|
197
|
+
}, 'ActionTracker created successfully');
|
|
198
|
+
return { tracker, adapter };
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Creates inventory components for inventory-based rebalancing.
|
|
202
|
+
* Returns null if inventory config is not available.
|
|
203
|
+
*
|
|
204
|
+
* @param actionTracker - ActionTracker instance for tracking inventory actions
|
|
205
|
+
* @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
|
|
206
|
+
*/
|
|
207
|
+
async createInventoryRebalancerAndConfig(actionTracker, externalBridgeRegistryOverride) {
|
|
208
|
+
const { inventorySigners } = this.config;
|
|
209
|
+
if (!inventorySigners || Object.keys(inventorySigners).length === 0) {
|
|
210
|
+
this.logger.debug('Inventory config not available, skipping inventory components creation');
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
const redactedInventorySigners = Object.fromEntries(Object.entries(inventorySigners).map(([protocol, signerConfig]) => [
|
|
214
|
+
protocol,
|
|
215
|
+
signerConfig ? { address: signerConfig.address } : signerConfig,
|
|
216
|
+
]));
|
|
217
|
+
this.logger.debug({
|
|
218
|
+
warpRouteId: this.config.warpRouteId,
|
|
219
|
+
inventorySigners: redactedInventorySigners,
|
|
220
|
+
}, 'Creating inventory components');
|
|
221
|
+
const inventoryChains = getInventoryChainNames(this.config.strategyConfig);
|
|
222
|
+
const inventoryOriginChains = getInventoryOriginChainNames(this.config.strategyConfig);
|
|
223
|
+
const allRelevantChains = Array.from(new Set([...inventoryChains, ...inventoryOriginChains]));
|
|
224
|
+
if (allRelevantChains.length === 0) {
|
|
225
|
+
this.logger.debug('No inventory chains configured');
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
const requiredProtocols = new Set(allRelevantChains.map((chain) => {
|
|
229
|
+
const metadata = this.warpCore.multiProvider.getChainMetadata(chain);
|
|
230
|
+
assert(metadata?.protocol, `No protocol in chain metadata for ${chain}`);
|
|
231
|
+
return metadata.protocol;
|
|
232
|
+
}));
|
|
233
|
+
const SUPPORTED_INVENTORY_PROTOCOLS = new Set([
|
|
234
|
+
ProtocolType.Ethereum,
|
|
235
|
+
ProtocolType.Sealevel,
|
|
236
|
+
]);
|
|
237
|
+
for (const protocol of requiredProtocols) {
|
|
238
|
+
const chainsForProtocol = allRelevantChains.filter((chain) => this.warpCore.multiProvider.getChainMetadata(chain).protocol ===
|
|
239
|
+
protocol);
|
|
240
|
+
assert(SUPPORTED_INVENTORY_PROTOCOLS.has(protocol), `Inventory rebalancing does not support protocol '${protocol}' (chains: ${chainsForProtocol.join(', ')}). Supported: ethereum, sealevel`);
|
|
241
|
+
}
|
|
242
|
+
for (const protocol of requiredProtocols) {
|
|
243
|
+
const chainsForProtocol = allRelevantChains.filter((chain) => this.warpCore.multiProvider.getChainMetadata(chain).protocol ===
|
|
244
|
+
protocol);
|
|
245
|
+
assert(this.config.inventorySigners?.[protocol]?.key ??
|
|
246
|
+
this.inventorySignerKeysByProtocol?.[protocol], `Missing inventory signer key for protocol ${protocol} (required by inventory chains: ${chainsForProtocol.join(', ')})`);
|
|
247
|
+
}
|
|
248
|
+
// Validate inventory address coverage for all required protocols
|
|
249
|
+
for (const protocol of requiredProtocols) {
|
|
250
|
+
const chainsForProtocol = allRelevantChains.filter((chain) => this.warpCore.multiProvider.getChainMetadata(chain).protocol ===
|
|
251
|
+
protocol);
|
|
252
|
+
assert(inventorySigners[protocol]?.address, `Missing inventory address for protocol ${protocol} (required by inventory chains: ${chainsForProtocol.join(', ')})`);
|
|
253
|
+
}
|
|
254
|
+
const externalBridgeRegistry = externalBridgeRegistryOverride ?? this.buildExternalBridgeRegistry();
|
|
255
|
+
if (Object.keys(externalBridgeRegistry).length === 0) {
|
|
256
|
+
if (externalBridgeRegistryOverride !== undefined) {
|
|
257
|
+
this.logger.debug('No external bridges in override registry, skipping inventory components');
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
this.logger.debug('No external bridges configured, skipping inventory components');
|
|
261
|
+
}
|
|
262
|
+
const inventoryAddresses = Object.fromEntries(Object.entries(inventorySigners).map(([protocol, cfg]) => [
|
|
263
|
+
protocol,
|
|
264
|
+
cfg.address,
|
|
265
|
+
]));
|
|
266
|
+
const inventoryConfig = {
|
|
267
|
+
inventoryAddresses,
|
|
268
|
+
chains: allRelevantChains,
|
|
269
|
+
};
|
|
270
|
+
// Merge config addresses with runtime keys
|
|
271
|
+
const mergedSigners = {};
|
|
272
|
+
for (const [protocol, cfg] of Object.entries(inventorySigners)) {
|
|
273
|
+
const protocolKey = protocol;
|
|
274
|
+
mergedSigners[protocolKey] = {
|
|
275
|
+
address: cfg.address,
|
|
276
|
+
key: cfg.key ?? this.inventorySignerKeysByProtocol?.[protocolKey],
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
const inventoryRebalancer = new InventoryRebalancer({
|
|
280
|
+
inventorySigners: mergedSigners,
|
|
281
|
+
inventoryChains,
|
|
282
|
+
}, actionTracker, externalBridgeRegistryOverride ?? {}, this.warpCore, this.multiProvider, this.logger);
|
|
283
|
+
return {
|
|
284
|
+
inventoryRebalancer,
|
|
285
|
+
externalBridgeRegistry: externalBridgeRegistryOverride ?? {},
|
|
286
|
+
inventoryConfig,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
// 3. Build inventory config
|
|
290
|
+
const inventoryAddresses = Object.fromEntries(Object.entries(inventorySigners).map(([protocol, cfg]) => [
|
|
291
|
+
protocol,
|
|
292
|
+
cfg.address,
|
|
293
|
+
]));
|
|
294
|
+
const inventoryConfig = {
|
|
295
|
+
inventoryAddresses,
|
|
296
|
+
chains: allRelevantChains,
|
|
297
|
+
};
|
|
298
|
+
// 4. Create InventoryRebalancer
|
|
299
|
+
// Merge config addresses with runtime keys
|
|
300
|
+
const mergedSigners = {};
|
|
301
|
+
for (const [protocol, cfg] of Object.entries(inventorySigners)) {
|
|
302
|
+
const protocolKey = protocol;
|
|
303
|
+
mergedSigners[protocolKey] = {
|
|
304
|
+
address: cfg.address,
|
|
305
|
+
key: cfg.key ?? this.inventorySignerKeysByProtocol?.[protocolKey],
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
const inventoryRebalancer = new InventoryRebalancer({
|
|
309
|
+
inventorySigners: mergedSigners,
|
|
310
|
+
inventoryChains,
|
|
311
|
+
}, actionTracker, externalBridgeRegistry, this.warpCore, this.multiProvider, this.logger);
|
|
312
|
+
this.logger.info({
|
|
313
|
+
inventoryChains,
|
|
314
|
+
inventorySigners: redactedInventorySigners,
|
|
315
|
+
}, 'Inventory components created successfully');
|
|
316
|
+
return { inventoryRebalancer, externalBridgeRegistry, inventoryConfig };
|
|
317
|
+
}
|
|
318
|
+
buildExternalBridgeRegistry() {
|
|
319
|
+
const { externalBridges } = this.config;
|
|
320
|
+
const registry = {};
|
|
321
|
+
for (const bridgeType of Object.values(ExternalBridgeType)) {
|
|
322
|
+
switch (bridgeType) {
|
|
323
|
+
case ExternalBridgeType.LiFi: {
|
|
324
|
+
const lifiConfig = externalBridges?.lifi;
|
|
325
|
+
if (lifiConfig?.integrator) {
|
|
326
|
+
registry[ExternalBridgeType.LiFi] = new LiFiBridge({
|
|
327
|
+
integrator: lifiConfig.integrator,
|
|
328
|
+
defaultSlippage: lifiConfig.defaultSlippage,
|
|
329
|
+
chainMetadata: this.multiProvider.metadata,
|
|
330
|
+
}, this.logger);
|
|
331
|
+
}
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
334
|
+
default: {
|
|
335
|
+
// Exhaustive check - TypeScript will error if new enum value added
|
|
336
|
+
const _exhaustive = bridgeType;
|
|
337
|
+
throw new Error(`Unknown bridge type: ${_exhaustive}`);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return registry;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Creates all rebalancers based on config execution types.
|
|
345
|
+
* Returns an array of rebalancers (movableCollateral and/or inventory)
|
|
346
|
+
* along with metadata needed for monitor and orchestrator.
|
|
347
|
+
*
|
|
348
|
+
* @param actionTracker - ActionTracker instance for tracking actions
|
|
349
|
+
* @param metrics - Optional Metrics instance
|
|
350
|
+
* @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing)
|
|
351
|
+
*/
|
|
352
|
+
async createRebalancers(actionTracker, metrics, externalBridgeRegistryOverride) {
|
|
353
|
+
const rebalancers = [];
|
|
354
|
+
let externalBridgeRegistry = {};
|
|
355
|
+
let inventoryConfig;
|
|
356
|
+
// Check if any chains use movableCollateral execution type
|
|
357
|
+
const hasMovableCollateral = this.hasMovableCollateralChains();
|
|
358
|
+
if (hasMovableCollateral) {
|
|
359
|
+
const rebalancer = this.createMovableCollateralRebalancer(actionTracker, metrics);
|
|
360
|
+
rebalancers.push(rebalancer);
|
|
361
|
+
}
|
|
362
|
+
// Check if any chains use inventory execution type
|
|
363
|
+
const inventoryComponents = await this.createInventoryRebalancerAndConfig(actionTracker, externalBridgeRegistryOverride);
|
|
364
|
+
if (inventoryComponents) {
|
|
365
|
+
rebalancers.push(inventoryComponents.inventoryRebalancer);
|
|
366
|
+
externalBridgeRegistry = inventoryComponents.externalBridgeRegistry;
|
|
367
|
+
inventoryConfig = inventoryComponents.inventoryConfig;
|
|
368
|
+
}
|
|
369
|
+
return { rebalancers, externalBridgeRegistry, inventoryConfig };
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Creates a RebalancerOrchestrator with all required dependencies.
|
|
373
|
+
*/
|
|
374
|
+
createOrchestrator(options) {
|
|
375
|
+
this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating RebalancerOrchestrator');
|
|
376
|
+
return new RebalancerOrchestrator({
|
|
377
|
+
strategy: options.strategy,
|
|
378
|
+
actionTracker: options.actionTracker,
|
|
379
|
+
inflightContextAdapter: options.inflightContextAdapter,
|
|
380
|
+
rebalancerConfig: this.config,
|
|
381
|
+
logger: this.logger,
|
|
382
|
+
rebalancers: options.rebalancers,
|
|
383
|
+
externalBridgeRegistry: options.externalBridgeRegistry,
|
|
384
|
+
metrics: options.metrics,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
hasMovableCollateralChains() {
|
|
388
|
+
return getStrategyChainNames(this.config.strategyConfig).some((chainName) => {
|
|
389
|
+
const chainConfig = getStrategyChainConfig(this.config.strategyConfig, chainName);
|
|
390
|
+
if ((chainConfig?.executionType ?? ExecutionType.MovableCollateral) ===
|
|
391
|
+
ExecutionType.MovableCollateral) {
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
if (!chainConfig?.override) {
|
|
395
|
+
return false;
|
|
396
|
+
}
|
|
397
|
+
return Object.values(chainConfig.override).some((overrideConfig) => {
|
|
398
|
+
const overrideExecutionType = getOverrideExecutionType(overrideConfig);
|
|
399
|
+
return ((overrideExecutionType ??
|
|
400
|
+
chainConfig.executionType ??
|
|
401
|
+
ExecutionType.MovableCollateral) ===
|
|
402
|
+
ExecutionType.MovableCollateral);
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
async getInitialTotalCollateral() {
|
|
407
|
+
let initialTotalCollateral = 0n;
|
|
408
|
+
const chainNames = new Set(getStrategyChainNames(this.config.strategyConfig));
|
|
409
|
+
await Promise.all(this.warpCore.tokens.map(async (token) => {
|
|
410
|
+
if (isCollateralizedTokenEligibleForRebalancing(token) &&
|
|
411
|
+
chainNames.has(token.chainName)) {
|
|
412
|
+
const adapter = token.getHypAdapter(this.warpCore.multiProvider);
|
|
413
|
+
const bridgedSupply = await adapter.getBridgedSupply();
|
|
414
|
+
initialTotalCollateral += bridgedSupply ?? 0n;
|
|
415
|
+
}
|
|
416
|
+
}));
|
|
417
|
+
return initialTotalCollateral;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=RebalancerContextFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RebalancerContextFactory.js","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RebalancerContextFactory.test.d.ts","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.test.ts"],"names":[],"mappings":""}
|