@hyperlane-xyz/rebalancer 0.1.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +134 -14
- package/dist/config/RebalancerConfig.d.ts +2 -2
- package/dist/config/RebalancerConfig.d.ts.map +1 -1
- package/dist/config/RebalancerConfig.js +4 -3
- package/dist/config/RebalancerConfig.js.map +1 -1
- package/dist/config/RebalancerConfig.test.js +434 -163
- package/dist/config/RebalancerConfig.test.js.map +1 -1
- package/dist/config/types.d.ts +1650 -290
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +124 -46
- package/dist/config/types.js.map +1 -1
- package/dist/core/Rebalancer.d.ts +14 -7
- package/dist/core/Rebalancer.d.ts.map +1 -1
- package/dist/core/Rebalancer.js +168 -99
- package/dist/core/Rebalancer.js.map +1 -1
- 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 +391 -0
- package/dist/core/Rebalancer.test.js.map +1 -0
- package/dist/core/RebalancerService.d.ts +16 -2
- package/dist/core/RebalancerService.d.ts.map +1 -1
- package/dist/core/RebalancerService.js +164 -21
- package/dist/core/RebalancerService.js.map +1 -1
- 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 +809 -0
- package/dist/core/RebalancerService.test.js.map +1 -0
- package/dist/factories/RebalancerContextFactory.d.ts +11 -0
- package/dist/factories/RebalancerContextFactory.d.ts.map +1 -1
- package/dist/factories/RebalancerContextFactory.js +60 -13
- 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 +4 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IMonitor.d.ts +6 -8
- package/dist/interfaces/IMonitor.d.ts.map +1 -1
- package/dist/interfaces/IMonitor.js.map +1 -1
- package/dist/interfaces/IRebalancer.d.ts +20 -4
- package/dist/interfaces/IRebalancer.d.ts.map +1 -1
- package/dist/interfaces/IStrategy.d.ts +18 -2
- package/dist/interfaces/IStrategy.d.ts.map +1 -1
- package/dist/metrics/Metrics.d.ts +4 -2
- package/dist/metrics/Metrics.d.ts.map +1 -1
- package/dist/metrics/Metrics.js +21 -1
- package/dist/metrics/Metrics.js.map +1 -1
- package/dist/metrics/scripts/metrics.d.ts +2 -0
- package/dist/metrics/scripts/metrics.d.ts.map +1 -1
- package/dist/metrics/scripts/metrics.js +12 -0
- package/dist/metrics/scripts/metrics.js.map +1 -1
- package/dist/monitor/Monitor.d.ts +8 -3
- package/dist/monitor/Monitor.d.ts.map +1 -1
- package/dist/monitor/Monitor.js +75 -15
- package/dist/monitor/Monitor.js.map +1 -1
- package/dist/strategy/BaseStrategy.d.ts +51 -5
- package/dist/strategy/BaseStrategy.d.ts.map +1 -1
- package/dist/strategy/BaseStrategy.js +199 -19
- package/dist/strategy/BaseStrategy.js.map +1 -1
- package/dist/strategy/CollateralDeficitStrategy.d.ts +65 -0
- package/dist/strategy/CollateralDeficitStrategy.d.ts.map +1 -0
- package/dist/strategy/CollateralDeficitStrategy.js +245 -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 +364 -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 +265 -0
- package/dist/strategy/CompositeStrategy.test.js.map +1 -0
- package/dist/strategy/MinAmountStrategy.d.ts +12 -5
- package/dist/strategy/MinAmountStrategy.d.ts.map +1 -1
- package/dist/strategy/MinAmountStrategy.js +23 -14
- package/dist/strategy/MinAmountStrategy.js.map +1 -1
- package/dist/strategy/MinAmountStrategy.test.js +88 -20
- package/dist/strategy/MinAmountStrategy.test.js.map +1 -1
- package/dist/strategy/StrategyFactory.d.ts +15 -6
- package/dist/strategy/StrategyFactory.d.ts.map +1 -1
- package/dist/strategy/StrategyFactory.js +48 -10
- package/dist/strategy/StrategyFactory.js.map +1 -1
- package/dist/strategy/StrategyFactory.test.js +2 -2
- package/dist/strategy/StrategyFactory.test.js.map +1 -1
- package/dist/strategy/WeightedStrategy.d.ts +13 -4
- package/dist/strategy/WeightedStrategy.d.ts.map +1 -1
- package/dist/strategy/WeightedStrategy.js +18 -6
- package/dist/strategy/WeightedStrategy.js.map +1 -1
- package/dist/strategy/WeightedStrategy.test.js +108 -18
- package/dist/strategy/WeightedStrategy.test.js.map +1 -1
- package/dist/strategy/index.d.ts +2 -0
- package/dist/strategy/index.d.ts.map +1 -1
- package/dist/strategy/index.js +2 -0
- package/dist/strategy/index.js.map +1 -1
- package/dist/test/helpers.d.ts +93 -3
- package/dist/test/helpers.d.ts.map +1 -1
- package/dist/test/helpers.js +267 -10
- package/dist/test/helpers.js.map +1 -1
- package/dist/tracking/ActionTracker.d.ts +49 -0
- package/dist/tracking/ActionTracker.d.ts.map +1 -0
- package/dist/tracking/ActionTracker.js +422 -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 +637 -0
- package/dist/tracking/ActionTracker.test.js.map +1 -0
- package/dist/tracking/IActionTracker.d.ts +101 -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 +35 -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 +172 -0
- package/dist/tracking/InflightContextAdapter.test.js.map +1 -0
- package/dist/tracking/index.d.ts +7 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +6 -0
- package/dist/tracking/index.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 +43 -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 +39 -1
- package/dist/utils/ExplorerClient.d.ts.map +1 -1
- package/dist/utils/ExplorerClient.js +205 -2
- package/dist/utils/ExplorerClient.js.map +1 -1
- package/dist/utils/balanceUtils.js +2 -2
- package/dist/utils/balanceUtils.js.map +1 -1
- package/dist/utils/balanceUtils.test.js +1 -0
- package/dist/utils/balanceUtils.test.js.map +1 -1
- package/dist/utils/bridgeUtils.d.ts +1 -3
- package/dist/utils/bridgeUtils.d.ts.map +1 -1
- package/dist/utils/bridgeUtils.js +1 -5
- package/dist/utils/bridgeUtils.js.map +1 -1
- package/dist/utils/bridgeUtils.test.js +3 -14
- package/dist/utils/bridgeUtils.test.js.map +1 -1
- package/package.json +11 -9
- package/src/config/RebalancerConfig.test.ts +459 -163
- package/src/config/RebalancerConfig.ts +5 -3
- package/src/config/types.ts +159 -52
- package/src/core/Rebalancer.test.ts +632 -0
- package/src/core/Rebalancer.ts +247 -157
- package/src/core/RebalancerService.test.ts +1144 -0
- package/src/core/RebalancerService.ts +245 -23
- package/src/factories/RebalancerContextFactory.ts +115 -14
- package/src/index.ts +16 -4
- package/src/interfaces/IMonitor.ts +15 -8
- package/src/interfaces/IRebalancer.ts +22 -4
- package/src/interfaces/IStrategy.ts +23 -2
- package/src/metrics/Metrics.ts +26 -5
- package/src/metrics/scripts/metrics.ts +14 -0
- package/src/monitor/Monitor.ts +109 -22
- package/src/strategy/BaseStrategy.ts +316 -26
- package/src/strategy/CollateralDeficitStrategy.test.ts +551 -0
- package/src/strategy/CollateralDeficitStrategy.ts +390 -0
- package/src/strategy/CompositeStrategy.test.ts +405 -0
- package/src/strategy/CompositeStrategy.ts +102 -0
- package/src/strategy/MinAmountStrategy.test.ts +189 -88
- package/src/strategy/MinAmountStrategy.ts +44 -13
- package/src/strategy/StrategyFactory.test.ts +2 -2
- package/src/strategy/StrategyFactory.ts +91 -8
- package/src/strategy/WeightedStrategy.test.ts +187 -72
- package/src/strategy/WeightedStrategy.ts +41 -7
- package/src/strategy/index.ts +2 -0
- package/src/test/helpers.ts +418 -14
- package/src/tracking/ActionTracker.test.ts +783 -0
- package/src/tracking/ActionTracker.ts +647 -0
- package/src/tracking/IActionTracker.ts +140 -0
- package/src/tracking/InflightContextAdapter.test.ts +203 -0
- package/src/tracking/InflightContextAdapter.ts +42 -0
- package/src/tracking/index.ts +36 -0
- package/src/tracking/store/IStore.ts +48 -0
- package/src/tracking/store/InMemoryStore.test.ts +338 -0
- package/src/tracking/store/InMemoryStore.ts +58 -0
- package/src/tracking/store/index.ts +2 -0
- package/src/tracking/types.ts +74 -0
- package/src/utils/ExplorerClient.ts +266 -3
- package/src/utils/balanceUtils.test.ts +1 -0
- package/src/utils/balanceUtils.ts +2 -2
- package/src/utils/bridgeUtils.test.ts +3 -15
- package/src/utils/bridgeUtils.ts +0 -10
- package/dist/core/WithInflightGuard.d.ts +0 -20
- package/dist/core/WithInflightGuard.d.ts.map +0 -1
- package/dist/core/WithInflightGuard.js +0 -47
- package/dist/core/WithInflightGuard.js.map +0 -1
- package/dist/core/WithInflightGuard.test.d.ts +0 -2
- package/dist/core/WithInflightGuard.test.d.ts.map +0 -1
- package/dist/core/WithInflightGuard.test.js +0 -64
- package/dist/core/WithInflightGuard.test.js.map +0 -1
- package/dist/core/WithSemaphore.d.ts +0 -22
- package/dist/core/WithSemaphore.d.ts.map +0 -1
- package/dist/core/WithSemaphore.js +0 -67
- package/dist/core/WithSemaphore.js.map +0 -1
- package/dist/core/WithSemaphore.test.d.ts +0 -2
- package/dist/core/WithSemaphore.test.d.ts.map +0 -1
- package/dist/core/WithSemaphore.test.js +0 -83
- package/dist/core/WithSemaphore.test.js.map +0 -1
- package/src/core/WithInflightGuard.test.ts +0 -131
- package/src/core/WithInflightGuard.ts +0 -67
- package/src/core/WithSemaphore.test.ts +0 -111
- package/src/core/WithSemaphore.ts +0 -92
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RebalancerService.test.js","sourceRoot":"","sources":["../../src/core/RebalancerService.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpE,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAEhC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE7C,SAAS,0BAA0B;IACjC,OAAO;QACL,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE;YACd;gBACE,iBAAiB,EAAE,yBAAyB,CAAC,QAAQ;gBACrD,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,uBAAuB,EAAE,CAAC;wBAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;qBAC1C;oBACD,QAAQ,EAAE;wBACR,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,uBAAuB,EAAE,CAAC;wBAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;qBAC1C;iBACF;aACF;SACF;KACkB,CAAC;AACxB,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;YACpD,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACzE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;YAC9B,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;SACzD,CAAC;QACF,QAAQ,EAAE;YACR,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;YACzB,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC9B;KAC0B,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,OAAO;QACL,SAAS;QACT,IAAI,EAAE,GAAG,SAAS,OAAO;QACzB,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,cAAc,CAAC,SAAS,CAAC;QACzC,QAAQ,EAAE,kBAAkB;QAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;KACT,CAAC;AACxB,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,MAAM,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QAClE,aAAa,EAAE,uBAAuB,EAAE;KAClB,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IAGzB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,oBAAoB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACnC,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzD,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC9C,uBAAuB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAChD,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC5C,uBAAuB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAChD,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC9C,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC5C,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACtC,oBAAoB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC7C,oBAAoB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC7C,gBAAgB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACzC,sBAAsB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,yBAAyB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,yBAAyB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,gCAAgC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC;IAGvC,OAAO;QACL,kBAAkB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC;YACxC,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;SACrB,CAAC;KAGH,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,YAQI,EAAE;IAEN,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,oBAAoB,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;IAC5D,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,IAAI,uBAAuB,EAAE,CAAC;IAC3E,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,IAAI,gCAAgC,EAAE,CAAC;IAClE,MAAM,OAAO,GACX,SAAS,CAAC,OAAO;QAChB;YACC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SACP,CAAC;IAE3B,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC3B,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAClC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC;QACpD,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU;QAClC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ;QACpC,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO;QAC5B,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,IAAK,EAAc;QAC/D,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAChC,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,eAAe;SACzB,CAAC;KACoC,CAAC;AAC3C,CAAC;AASD,KAAK,UAAU,eAAe,CAC5B,OAA2B,EAC3B,OAqBC;IAED,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;IAChD,IAAI,WAAW,GAAG,CAAC,CAAC;IACnB,aAAa,CAAC,qBAAyC,CAAC,SAAS,CAChE,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,IAAI,UAAU,WAAW,GAAG,CAAC,EAAE;QACnE,MAAM,EAAE,aAAsB;QAC9B,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;KACvB,CAAC,CACH,CAAC;IAEF,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAC1C,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,eAAe,GAAG,gCAAgC,EAAE,CAAC;IAE3D,IAAI,gBAA6D,CAAC;IAClE,MAAM,OAAO,GAAG;QACd,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;YACzD,IAAI,KAAK,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;gBACzC,gBAAgB,GAAG,OAAO,CAAC;YAC7B,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;KACR,CAAC;IAExB,MAAM,cAAc,GAAG,wBAAwB,CAAC;QAC9C,UAAU;QACV,QAAQ;QACR,aAAa;QACb,eAAe;QACf,OAAO;KACR,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAC9D,CAAC;IAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,OAAO;QACL,aAAa;QACb,UAAU;QACV,QAAQ;QACR,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7C,MAAM,gBAAiB,CAAC;gBACtB,UAAU,EAAE;oBACV,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;oBAC5D,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;iBAC7D;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,OAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC5B;oBACE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;oBACrE,OAAO,EAAE,IAAI;oBACb,SAAS,EACP,oEAAoE;oBACtE,MAAM,EACJ,oEAAoE;iBACvE;aACF,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,aAAa,CAAC;gBAC1B,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACnD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBACrC,aAAa,EAAE,uBAAuB,EAAE;aAClB,CAAC;YAEzB,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,GAAG;aACZ,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;YAEtD,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,MAAM;aACf,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,mBAAmB,GAAqB;gBAC5C,WAAW,EAAE,YAAY;gBACzB,cAAc,EAAE;oBACd;wBACE,iBAAiB,EAAE,yBAAyB,CAAC,QAAQ;wBACrD,MAAM,EAAE;4BACN,QAAQ,EAAE;gCACR,MAAM,EAAE,cAAc,CAAC,MAAM;gCAC7B,uBAAuB,EAAE,CAAC;gCAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;6BAC3C;yBACF;qBACF;iBACF;aACkB,CAAC;YAEtB,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,mBAAmB,EACnB,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,gDAAgD,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,mDAAmD,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAE5D,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,aAAa,CAAC;gBACpB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAC9C,2CAA2C,CAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aACR,CAAC;YAExB,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,MAAM,CAAE,OAAO,CAAC,EAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1D,MAAM,CAAE,OAAO,CAAC,KAAyB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACnC,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aACR,CAAC;YAExB,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAErB,MAAM,CAAE,OAAO,CAAC,IAAwB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC5B;oBACE,KAAK,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;oBACD,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uBAAuB;iBAC/B;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACpC;oBACE,MAAM,EAAE,UAAU;oBAClB,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,cAAc,CAAC,MAAM;iBAC9B;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,gCAAgC,EAAE,CAAC;YAE3D,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG;gBACd,uBAAuB;gBACvB,uBAAuB;gBACvB,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE;gBACjC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aAChB,CAAC;YAExB,IAAI,gBAA6D,CAAC;YAClE,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;oBACzD,IAAI,KAAK,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;wBACzC,gBAAgB,GAAG,OAAO,CAAC;oBAC7B,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aACR,CAAC;YAExB,MAAM,cAAc,GAAG,wBAAwB,CAAC;gBAC9C,UAAU;gBACV,QAAQ;gBACR,aAAa;gBACb,eAAe;gBACf,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7C,MAAM,gBAAiB,CAAC;gBACtB,UAAU,EAAE;oBACV,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;oBAC5D,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;iBAC7D;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtD,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC5B;oBACE,KAAK,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;oBACD,OAAO,EAAE,IAAI;oBACb,SAAS,EACP,oEAAoE;oBACtE,MAAM,EACJ,oEAAoE;iBACvE;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACpC;oBACE,MAAM,EAAE,UAAU;oBAClB,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,cAAc,CAAC,MAAM;iBAC9B;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,gCAAgC,EAAE,CAAC;YAE3D,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG;gBACd,uBAAuB;gBACvB,uBAAuB;gBACvB,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE;gBACjC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aAChB,CAAC;YAExB,IAAI,gBAA6D,CAAC;YAClE,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;oBACzD,IAAI,KAAK,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;wBACzC,gBAAgB,GAAG,OAAO,CAAC;oBAC7B,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aACR,CAAC;YAExB,MAAM,cAAc,GAAG,wBAAwB,CAAC;gBAC9C,UAAU;gBACV,QAAQ;gBACR,aAAa;gBACb,eAAe;gBACf,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7C,MAAM,gBAAiB,CAAC;gBACtB,UAAU,EAAE;oBACV,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;oBAC5D,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;iBAC7D;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtD,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC5B;oBACE,KAAK,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;oBACD,OAAO,EAAE,IAAI;oBACb,SAAS,EACP,oEAAoE;oBACtE,MAAM,EACJ,oEAAoE;iBACvE;gBACD;oBACE,KAAK,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,IAAI;wBACZ,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;oBACD,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,sBAAsB;iBAC9B;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACpC;oBACE,MAAM,EAAE,UAAU;oBAClB,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,cAAc,CAAC,MAAM;iBAC9B;gBACD;oBACE,MAAM,EAAE,UAAU;oBAClB,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,cAAc,CAAC,MAAM;iBAC9B;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,gCAAgC,EAAE,CAAC;YAE3D,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG;gBACd,uBAAuB;gBACvB,uBAAuB;gBACvB,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE;gBACjC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aAChB,CAAC;YAExB,IAAI,gBAA6D,CAAC;YAClE,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;oBACzD,IAAI,KAAK,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;wBACzC,gBAAgB,GAAG,OAAO,CAAC;oBAC7B,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;aACR,CAAC;YAExB,MAAM,cAAc,GAAG,wBAAwB,CAAC;gBAC9C,UAAU;gBACV,QAAQ;gBACR,aAAa;gBACb,eAAe;gBACf,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7C,MAAM,gBAAiB,CAAC;gBACtB,UAAU,EAAE;oBACV,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;oBAC5D,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;iBAC7D;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtD,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACtF,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;gBACrE,SAAS,EAAE,CAAC,YAAY,CAAC;gBACzB,gBAAgB,EAAE;oBAChB;wBACE,KAAK,EAAE;4BACL,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,UAAU;4BACvB,MAAM,EAAE,KAAK;4BACb,QAAQ,EAAE,YAAY;4BACtB,MAAM,EAAE,cAAc,CAAC,MAAM;yBAC9B;wBACD,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,uBAAuB;qBAC/B;iBACF;gBACD,cAAc,EAAE;oBACd;wBACE,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,EAAE,CAAC;YAErB,MAAM,CAAE,aAAa,CAAC,mBAAuC,CAAC,UAAU,CAAC;iBACtE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACd,MAAM,CACH,aAAa,CAAC,mBAAuC,CAAC,UAAU,CAC/D,YAAY,CACb,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YAC3F,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;gBACrE,SAAS,EAAE,CAAC,YAAY,CAAC;gBACzB,gBAAgB,EAAE;oBAChB;wBACE,KAAK,EAAE;4BACL,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,UAAU;4BACvB,MAAM,EAAE,KAAK;4BACb,QAAQ,EAAE,YAAY;4BACtB,MAAM,EAAE,cAAc,CAAC,MAAM;yBAC9B;wBACD,OAAO,EAAE,IAAI;wBACb,SAAS,EACP,oEAAoE;wBACtE,MAAM,EACJ,oEAAoE;qBACvE;iBACF;gBACD,cAAc,EAAE;oBACd;wBACE,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,EAAE,CAAC;YAErB,MAAM,CACH,aAAa,CAAC,qBAAyC,CAAC,UAAU,CACpE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,QAAQ,GAAI,aAAa,CAAC,qBAAyC;iBACtE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;YACvF,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;gBACrE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;gBACnC,gBAAgB,EAAE;oBAChB;wBACE,KAAK,EAAE;4BACL,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,UAAU;4BACvB,MAAM,EAAE,KAAK;4BACb,QAAQ,EAAE,UAAU;4BACpB,MAAM,EAAE,cAAc,CAAC,MAAM;yBAC9B;wBACD,OAAO,EAAE,IAAI;wBACb,SAAS,EACP,oEAAoE;wBACtE,MAAM,EACJ,oEAAoE;qBACvE;oBACD;wBACE,KAAK,EAAE;4BACL,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,UAAU;4BACvB,MAAM,EAAE,IAAI;4BACZ,QAAQ,EAAE,UAAU;4BACpB,MAAM,EAAE,cAAc,CAAC,MAAM;yBAC9B;wBACD,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,oBAAoB;qBAC5B;iBACF;gBACD,cAAc,EAAE;oBACd;wBACE,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;oBACD;wBACE,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,IAAI;wBACZ,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,EAAE,CAAC;YAErB,6DAA6D;YAC7D,MAAM,CACH,aAAa,CAAC,qBAAyC,CAAC,UAAU,CACpE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,CACH,aAAa,CAAC,qBAAyC,CAAC,SAAS;iBAC/D,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CACpB,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAEvB,2DAA2D;YAC3D,MAAM,CAAE,aAAa,CAAC,mBAAuC,CAAC,UAAU,CAAC;iBACtE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACd,MAAM,CACH,aAAa,CAAC,mBAAuC,CAAC,UAAU,CAC/D,UAAU,CACX,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;gBAClE,SAAS,EAAE,CAAC,qBAAqB,CAAC;gBAClC,gBAAgB,EAAE;oBAChB;wBACE,KAAK,EAAE;4BACL,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,UAAU;4BACvB,MAAM,EAAE,KAAK;4BACb,QAAQ,EAAE,qBAAqB;4BAC/B,MAAM,EAAE,cAAc,CAAC,MAAM;yBAC9B;wBACD,OAAO,EAAE,IAAI;wBACb,SAAS,EACP,oEAAoE;qBACvE;iBACF;gBACD,cAAc,EAAE;oBACd;wBACE,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,cAAc,CAAC,MAAM;qBAC9B;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,EAAE,CAAC;YAErB,wEAAwE;YACxE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACnD,MAAM,wBAAwB,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CACnD,qBAAqB,CACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,OAAO;iBACvB,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC;iBACxC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE5B,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,aAAa,CAAC;gBAC1B,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,aAAa,CAAC;gBAC1B,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,EAAa,CAAC;YAC9B,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAEpE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,uBAAuB,EAAE,EACzB,SAAS,EACT,EAAS,EACT,0BAA0B,EAAE,EAC5B,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,CAAC,aAAa,CAAC;gBAC1B,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ import type { IRebalancer } from '../interfaces/IRebalancer.js';
|
|
|
6
6
|
import type { IStrategy } from '../interfaces/IStrategy.js';
|
|
7
7
|
import { Metrics } from '../metrics/Metrics.js';
|
|
8
8
|
import { Monitor } from '../monitor/Monitor.js';
|
|
9
|
+
import { type IActionTracker, InflightContextAdapter } from '../tracking/index.js';
|
|
9
10
|
export declare class RebalancerContextFactory {
|
|
10
11
|
private readonly config;
|
|
11
12
|
private readonly warpCore;
|
|
@@ -36,6 +37,16 @@ export declare class RebalancerContextFactory {
|
|
|
36
37
|
createMonitor(checkFrequency: number): Monitor;
|
|
37
38
|
createStrategy(metrics?: Metrics): Promise<IStrategy>;
|
|
38
39
|
createRebalancer(metrics?: Metrics): IRebalancer;
|
|
40
|
+
/**
|
|
41
|
+
* Creates an ActionTracker for tracking inflight rebalance actions and user transfers.
|
|
42
|
+
* Returns both the tracker and adapter for use by RebalancerService.
|
|
43
|
+
*
|
|
44
|
+
* @param explorerUrl - Optional explorer URL (defaults to production Hyperlane Explorer)
|
|
45
|
+
*/
|
|
46
|
+
createActionTracker(explorerUrl?: string): Promise<{
|
|
47
|
+
tracker: IActionTracker;
|
|
48
|
+
adapter: InflightContextAdapter;
|
|
49
|
+
}>;
|
|
39
50
|
private getInitialTotalCollateral;
|
|
40
51
|
}
|
|
41
52
|
//# sourceMappingURL=RebalancerContextFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RebalancerContextFactory.d.ts","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"RebalancerContextFactory.d.ts","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAGL,qBAAqB,EACrB,aAAa,EACb,KAAK,KAAK,EACV,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAGL,KAAK,cAAc,EAEnB,sBAAsB,EAOvB,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,wBAAwB;IAUjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdzB;;;;;;;OAOG;IACH,OAAO;IASP;;;;;;OAMG;WACiB,MAAM,CACxB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC;IA8C7B,WAAW,IAAI,QAAQ;IAIvB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIhD,aAAa,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/D,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAWxC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAqB3D,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW;IAkBvD;;;;;OAKG;IACU,mBAAmB,CAC9B,WAAW,GAAE,MAA6B,GACzC,OAAO,CAAC;QACT,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,sBAAsB,CAAC;KACjC,CAAC;YA8EY,yBAAyB;CAsBxC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { MultiProtocolProvider, WarpCore, } from '@hyperlane-xyz/sdk';
|
|
1
|
+
import { HyperlaneCore, MultiProtocolProvider, WarpCore, } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { objMap } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { getAllBridges, getStrategyChainNames } from '../config/types.js';
|
|
3
4
|
import { Rebalancer } from '../core/Rebalancer.js';
|
|
4
|
-
import { WithSemaphore } from '../core/WithSemaphore.js';
|
|
5
5
|
import { Metrics } from '../metrics/Metrics.js';
|
|
6
6
|
import { PriceGetter } from '../metrics/PriceGetter.js';
|
|
7
7
|
import { Monitor } from '../monitor/Monitor.js';
|
|
8
8
|
import { StrategyFactory } from '../strategy/StrategyFactory.js';
|
|
9
|
+
import { ActionTracker, InMemoryStore, InflightContextAdapter, } from '../tracking/index.js';
|
|
10
|
+
import { ExplorerClient } from '../utils/ExplorerClient.js';
|
|
9
11
|
import { isCollateralizedTokenEligibleForRebalancing } from '../utils/index.js';
|
|
12
|
+
const DEFAULT_EXPLORER_URL = process.env.EXPLORER_API_URL || 'https://explorer4.hasura.app/v1/graphql';
|
|
10
13
|
export class RebalancerContextFactory {
|
|
11
14
|
config;
|
|
12
15
|
warpCore;
|
|
@@ -80,27 +83,71 @@ export class RebalancerContextFactory {
|
|
|
80
83
|
return new Monitor(checkFrequency, this.warpCore, this.logger);
|
|
81
84
|
}
|
|
82
85
|
async createStrategy(metrics) {
|
|
86
|
+
const strategyTypes = this.config.strategyConfig.map((s) => s.rebalanceStrategy);
|
|
83
87
|
this.logger.debug({
|
|
84
88
|
warpRouteId: this.config.warpRouteId,
|
|
85
|
-
|
|
89
|
+
strategyTypes,
|
|
90
|
+
strategyCount: this.config.strategyConfig.length,
|
|
86
91
|
}, 'Creating Strategy');
|
|
87
92
|
return StrategyFactory.createStrategy(this.config.strategyConfig, this.tokensByChainName, await this.getInitialTotalCollateral(), this.logger, metrics);
|
|
88
93
|
}
|
|
89
94
|
createRebalancer(metrics) {
|
|
90
95
|
this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating Rebalancer');
|
|
91
|
-
const rebalancer = new Rebalancer(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
const rebalancer = new Rebalancer(this.warpCore, this.multiProvider.metadata, this.tokensByChainName, this.multiProvider, this.logger, metrics);
|
|
97
|
+
return rebalancer;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates an ActionTracker for tracking inflight rebalance actions and user transfers.
|
|
101
|
+
* Returns both the tracker and adapter for use by RebalancerService.
|
|
102
|
+
*
|
|
103
|
+
* @param explorerUrl - Optional explorer URL (defaults to production Hyperlane Explorer)
|
|
104
|
+
*/
|
|
105
|
+
async createActionTracker(explorerUrl = DEFAULT_EXPLORER_URL) {
|
|
106
|
+
this.logger.debug({ warpRouteId: this.config.warpRouteId }, 'Creating ActionTracker');
|
|
107
|
+
// 1. Create in-memory stores
|
|
108
|
+
const transferStore = new InMemoryStore();
|
|
109
|
+
const intentStore = new InMemoryStore();
|
|
110
|
+
const actionStore = new InMemoryStore();
|
|
111
|
+
// 2. Create ExplorerClient
|
|
112
|
+
const explorerClient = new ExplorerClient(explorerUrl);
|
|
113
|
+
// 3. Get HyperlaneCore from registry
|
|
114
|
+
const addresses = await this.registry.getAddresses();
|
|
115
|
+
const hyperlaneCore = HyperlaneCore.fromAddressesMap(addresses, this.multiProvider);
|
|
116
|
+
// 4. Get rebalancer address from signer
|
|
117
|
+
// Use the first chain in the strategy to get the signer address
|
|
118
|
+
const chainNames = getStrategyChainNames(this.config.strategyConfig);
|
|
119
|
+
if (chainNames.length === 0) {
|
|
120
|
+
throw new Error('No chains configured in strategy');
|
|
121
|
+
}
|
|
122
|
+
const signer = this.multiProvider.getSigner(chainNames[0]);
|
|
123
|
+
const rebalancerAddress = await signer.getAddress();
|
|
124
|
+
const bridges = getAllBridges(this.config.strategyConfig);
|
|
125
|
+
// Build router→domain mapping (source of truth for routers and domains)
|
|
126
|
+
const routersByDomain = {};
|
|
127
|
+
for (const token of this.warpCore.tokens) {
|
|
128
|
+
const domain = this.multiProvider.getDomainId(token.chainName);
|
|
129
|
+
routersByDomain[domain] = token.addressOrDenom;
|
|
130
|
+
}
|
|
131
|
+
const trackerConfig = {
|
|
132
|
+
routersByDomain,
|
|
133
|
+
bridges,
|
|
134
|
+
rebalancerAddress,
|
|
135
|
+
};
|
|
136
|
+
// 6. Create ActionTracker
|
|
137
|
+
const tracker = new ActionTracker(transferStore, intentStore, actionStore, explorerClient, hyperlaneCore, trackerConfig, this.logger);
|
|
138
|
+
// 7. Create InflightContextAdapter
|
|
139
|
+
const adapter = new InflightContextAdapter(tracker, this.multiProvider);
|
|
140
|
+
this.logger.debug({
|
|
141
|
+
warpRouteId: this.config.warpRouteId,
|
|
142
|
+
routerCount: Object.keys(routersByDomain).length,
|
|
143
|
+
bridgeCount: bridges.length,
|
|
144
|
+
domainCount: Object.keys(routersByDomain).length,
|
|
145
|
+
}, 'ActionTracker created successfully');
|
|
146
|
+
return { tracker, adapter };
|
|
100
147
|
}
|
|
101
148
|
async getInitialTotalCollateral() {
|
|
102
149
|
let initialTotalCollateral = 0n;
|
|
103
|
-
const chainNames = new Set(
|
|
150
|
+
const chainNames = new Set(getStrategyChainNames(this.config.strategyConfig));
|
|
104
151
|
await Promise.all(this.warpCore.tokens.map(async (token) => {
|
|
105
152
|
if (isCollateralizedTokenEligibleForRebalancing(token) &&
|
|
106
153
|
chainNames.has(token.chainName)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RebalancerContextFactory.js","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,qBAAqB,EAGrB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RebalancerContextFactory.js","sourceRoot":"","sources":["../../src/factories/RebalancerContextFactory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,21 +9,20 @@
|
|
|
9
9
|
export { RebalancerService } from './core/RebalancerService.js';
|
|
10
10
|
export type { RebalancerServiceConfig, ManualRebalanceRequest, } from './core/RebalancerService.js';
|
|
11
11
|
export { Rebalancer } from './core/Rebalancer.js';
|
|
12
|
-
export { WithInflightGuard } from './core/WithInflightGuard.js';
|
|
13
|
-
export { WithSemaphore } from './core/WithSemaphore.js';
|
|
14
12
|
export { RebalancerConfig } from './config/RebalancerConfig.js';
|
|
15
|
-
export { RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
|
|
13
|
+
export { getStrategyChainConfig, getStrategyChainNames, RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerStrategySchema, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
|
|
16
14
|
export type { MinAmountStrategyConfig, RebalancerConfig as RebalancerConfigType, RebalancerConfigFileInput, RebalancerMinAmountChainConfig, RebalancerWeightedChainConfig, StrategyConfig, WeightedStrategyConfig, } from './config/types.js';
|
|
17
15
|
export { BaseStrategy } from './strategy/BaseStrategy.js';
|
|
16
|
+
export { CompositeStrategy } from './strategy/CompositeStrategy.js';
|
|
18
17
|
export { WeightedStrategy } from './strategy/WeightedStrategy.js';
|
|
19
18
|
export { MinAmountStrategy } from './strategy/MinAmountStrategy.js';
|
|
20
19
|
export { StrategyFactory } from './strategy/StrategyFactory.js';
|
|
21
20
|
export { Monitor } from './monitor/Monitor.js';
|
|
22
21
|
export { Metrics } from './metrics/Metrics.js';
|
|
23
22
|
export { PriceGetter } from './metrics/PriceGetter.js';
|
|
24
|
-
export type { IRebalancer, PreparedTransaction, } from './interfaces/IRebalancer.js';
|
|
25
|
-
export type { IStrategy,
|
|
26
|
-
export type { IMonitor } from './interfaces/IMonitor.js';
|
|
23
|
+
export type { IRebalancer, PreparedTransaction, RebalanceRoute, RebalanceExecutionResult, } from './interfaces/IRebalancer.js';
|
|
24
|
+
export type { IStrategy, StrategyRoute, RawBalances, InflightContext, } from './interfaces/IStrategy.js';
|
|
25
|
+
export type { ConfirmedBlockTag, ConfirmedBlockTags, IMonitor, } from './interfaces/IMonitor.js';
|
|
27
26
|
export { MonitorEventType, MonitorEvent, MonitorPollingError, MonitorStartError, } from './interfaces/IMonitor.js';
|
|
28
27
|
export type { IMetrics } from './interfaces/IMetrics.js';
|
|
29
28
|
export { getBridgeConfig } from './utils/bridgeUtils.js';
|
|
@@ -31,5 +30,6 @@ export type { BridgeConfigWithOverride, BridgeConfig, } from './utils/bridgeUtil
|
|
|
31
30
|
export { getRawBalances } from './utils/balanceUtils.js';
|
|
32
31
|
export { isCollateralizedTokenEligibleForRebalancing } from './utils/tokenUtils.js';
|
|
33
32
|
export { ExplorerClient } from './utils/ExplorerClient.js';
|
|
33
|
+
export { InflightContextAdapter } from './tracking/InflightContextAdapter.js';
|
|
34
34
|
export { RebalancerContextFactory } from './factories/RebalancerContextFactory.js';
|
|
35
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,uBAAuB,EACvB,gBAAgB,IAAI,oBAAoB,EACxC,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,cAAc,EACd,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAG9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
export { RebalancerService } from './core/RebalancerService.js';
|
|
11
11
|
// Core rebalancing logic
|
|
12
12
|
export { Rebalancer } from './core/Rebalancer.js';
|
|
13
|
-
export { WithInflightGuard } from './core/WithInflightGuard.js';
|
|
14
|
-
export { WithSemaphore } from './core/WithSemaphore.js';
|
|
15
13
|
// Configuration
|
|
16
14
|
export { RebalancerConfig } from './config/RebalancerConfig.js';
|
|
17
|
-
export { RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
|
|
15
|
+
export { getStrategyChainConfig, getStrategyChainNames, RebalancerBaseChainConfigSchema, RebalancerConfigSchema, RebalancerMinAmountConfigSchema, RebalancerMinAmountType, RebalancerStrategyOptions, RebalancerStrategySchema, RebalancerWeightedChainConfigSchema, StrategyConfigSchema, } from './config/types.js';
|
|
18
16
|
// Strategy
|
|
19
17
|
export { BaseStrategy } from './strategy/BaseStrategy.js';
|
|
18
|
+
export { CompositeStrategy } from './strategy/CompositeStrategy.js';
|
|
20
19
|
export { WeightedStrategy } from './strategy/WeightedStrategy.js';
|
|
21
20
|
export { MinAmountStrategy } from './strategy/MinAmountStrategy.js';
|
|
22
21
|
export { StrategyFactory } from './strategy/StrategyFactory.js';
|
|
@@ -31,6 +30,8 @@ export { getBridgeConfig } from './utils/bridgeUtils.js';
|
|
|
31
30
|
export { getRawBalances } from './utils/balanceUtils.js';
|
|
32
31
|
export { isCollateralizedTokenEligibleForRebalancing } from './utils/tokenUtils.js';
|
|
33
32
|
export { ExplorerClient } from './utils/ExplorerClient.js';
|
|
33
|
+
// Tracking
|
|
34
|
+
export { InflightContextAdapter } from './tracking/InflightContextAdapter.js';
|
|
34
35
|
// Factory
|
|
35
36
|
export { RebalancerContextFactory } from './factories/RebalancerContextFactory.js';
|
|
36
37
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAW3B,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAoBvD,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAGlC,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Token } from '@hyperlane-xyz/sdk';
|
|
1
|
+
import { type ChainMap, EthJsonRpcBlockParameterTag, type Token } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { WrappedError } from '../utils/errors.js';
|
|
3
3
|
export declare class MonitorStartError extends WrappedError {
|
|
4
4
|
name: string;
|
|
@@ -11,17 +11,14 @@ export declare enum MonitorEventType {
|
|
|
11
11
|
Error = "Error",
|
|
12
12
|
Start = "Start"
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*/
|
|
14
|
+
export type ConfirmedBlockTag = number | EthJsonRpcBlockParameterTag | undefined;
|
|
15
|
+
export type ConfirmedBlockTags = ChainMap<ConfirmedBlockTag>;
|
|
17
16
|
export type MonitorEvent = {
|
|
18
|
-
/**
|
|
19
|
-
* Collection of objects containing the information retrieved by the Monitor.
|
|
20
|
-
*/
|
|
21
17
|
tokensInfo: {
|
|
22
18
|
token: Token;
|
|
23
19
|
bridgedSupply?: bigint;
|
|
24
20
|
}[];
|
|
21
|
+
confirmedBlockTags: ConfirmedBlockTags;
|
|
25
22
|
};
|
|
26
23
|
/**
|
|
27
24
|
* Interface for a monitoring service that tracks token information across different chains.
|
|
@@ -29,8 +26,9 @@ export type MonitorEvent = {
|
|
|
29
26
|
export interface IMonitor {
|
|
30
27
|
/**
|
|
31
28
|
* Allows subscribers to listen to hyperlane's tokens info.
|
|
29
|
+
* Handler can be async - Monitor will await it before starting next cycle.
|
|
32
30
|
*/
|
|
33
|
-
on(eventName: MonitorEventType.TokenInfo, fn: (event: MonitorEvent) => void): this;
|
|
31
|
+
on(eventName: MonitorEventType.TokenInfo, fn: (event: MonitorEvent) => void | Promise<void>): this;
|
|
34
32
|
/**
|
|
35
33
|
* Allows subscribers to listen to error events.
|
|
36
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMonitor.d.ts","sourceRoot":"","sources":["../../src/interfaces/IMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"IMonitor.d.ts","sourceRoot":"","sources":["../../src/interfaces/IMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,2BAA2B,EAC3B,KAAK,KAAK,EACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAuB;CAC5B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,IAAI,SAAyB;CAC9B;AAED,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,2BAA2B,GAC3B,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,EAAE,CACA,SAAS,EAAE,gBAAgB,CAAC,SAAS,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI,CAAC;IAER;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAExE;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMonitor.js","sourceRoot":"","sources":["../../src/interfaces/IMonitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IMonitor.js","sourceRoot":"","sources":["../../src/interfaces/IMonitor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD,IAAI,GAAG,mBAAmB,CAAC;CAC5B;AAED,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD,IAAI,GAAG,qBAAqB,CAAC;CAC9B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IACvB,mCAAe,CAAA;IACf,mCAAe,CAAA;AACjB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B"}
|
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import { type EvmMovableCollateralAdapter, type TokenAmount } from '@hyperlane-xyz/sdk';
|
|
2
|
-
import {
|
|
2
|
+
import type { StrategyRoute } from './IStrategy.js';
|
|
3
|
+
/**
|
|
4
|
+
* RebalanceRoute extends StrategyRoute with a required intentId for tracking.
|
|
5
|
+
* The intentId is assigned by RebalancerService before execution and links
|
|
6
|
+
* to the corresponding RebalanceIntent in the tracking system.
|
|
7
|
+
*/
|
|
8
|
+
export type RebalanceRoute = StrategyRoute & {
|
|
9
|
+
/** Links to the RebalanceIntent that this route fulfills */
|
|
10
|
+
intentId: string;
|
|
11
|
+
};
|
|
3
12
|
export type PreparedTransaction = {
|
|
4
13
|
populatedTx: Awaited<ReturnType<EvmMovableCollateralAdapter['populateRebalanceTx']>>;
|
|
5
|
-
route:
|
|
14
|
+
route: RebalanceRoute;
|
|
6
15
|
originTokenAmount: TokenAmount;
|
|
7
16
|
};
|
|
8
17
|
export type RebalanceMetrics = {
|
|
9
|
-
route:
|
|
18
|
+
route: RebalanceRoute;
|
|
10
19
|
originTokenAmount: TokenAmount;
|
|
11
20
|
};
|
|
21
|
+
export type RebalanceExecutionResult = {
|
|
22
|
+
route: RebalanceRoute;
|
|
23
|
+
success: boolean;
|
|
24
|
+
messageId?: string;
|
|
25
|
+
txHash?: string;
|
|
26
|
+
error?: string;
|
|
27
|
+
};
|
|
12
28
|
export interface IRebalancer {
|
|
13
|
-
rebalance(routes:
|
|
29
|
+
rebalance(routes: RebalanceRoute[]): Promise<RebalanceExecutionResult[]>;
|
|
14
30
|
}
|
|
15
31
|
//# sourceMappingURL=IRebalancer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRebalancer.d.ts","sourceRoot":"","sources":["../../src/interfaces/IRebalancer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"IRebalancer.d.ts","sourceRoot":"","sources":["../../src/interfaces/IRebalancer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,OAAO,CAClB,UAAU,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,CAAC,CAC/D,CAAC;IACF,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;CAC1E"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
import { type ChainMap, type ChainName } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import type { Address } from '@hyperlane-xyz/utils';
|
|
2
3
|
export type RawBalances = ChainMap<bigint>;
|
|
3
|
-
export
|
|
4
|
+
export interface Route {
|
|
4
5
|
origin: ChainName;
|
|
5
6
|
destination: ChainName;
|
|
6
7
|
amount: bigint;
|
|
8
|
+
}
|
|
9
|
+
export interface StrategyRoute extends Route {
|
|
10
|
+
bridge: Address;
|
|
11
|
+
}
|
|
12
|
+
export type InflightContext = {
|
|
13
|
+
/**
|
|
14
|
+
* In-flight rebalances from ActionTracker.
|
|
15
|
+
* Uses Route[] because recovered intents (from Explorer startup recovery)
|
|
16
|
+
* don't have bridge information. Some routes may have bridge at runtime.
|
|
17
|
+
*/
|
|
18
|
+
pendingRebalances: Route[];
|
|
19
|
+
pendingTransfers: Route[];
|
|
20
|
+
/** Routes from earlier strategies - always have bridge */
|
|
21
|
+
proposedRebalances?: StrategyRoute[];
|
|
7
22
|
};
|
|
8
23
|
export interface IStrategy {
|
|
9
|
-
|
|
24
|
+
readonly name: string;
|
|
25
|
+
getRebalancingRoutes(rawBalances: RawBalances, inflightContext?: InflightContext): StrategyRoute[];
|
|
10
26
|
}
|
|
11
27
|
//# sourceMappingURL=IStrategy.d.ts.map
|
|
@@ -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;
|
|
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;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,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"}
|
|
@@ -2,7 +2,7 @@ import { type Logger } from 'pino';
|
|
|
2
2
|
import { Token, type TokenAmount, type WarpCore, type WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { type IMetrics } from '../interfaces/IMetrics.js';
|
|
4
4
|
import { type MonitorEvent } from '../interfaces/IMonitor.js';
|
|
5
|
-
import { type
|
|
5
|
+
import { type StrategyRoute } from '../interfaces/IStrategy.js';
|
|
6
6
|
import { type PriceGetter } from './PriceGetter.js';
|
|
7
7
|
export declare class Metrics implements IMetrics {
|
|
8
8
|
private readonly tokenPriceGetter;
|
|
@@ -13,9 +13,11 @@ export declare class Metrics implements IMetrics {
|
|
|
13
13
|
private readonly priceGetter;
|
|
14
14
|
constructor(tokenPriceGetter: PriceGetter, warpDeployConfig: WarpRouteDeployConfig | null, warpCore: WarpCore, warpRouteId: string, logger: Logger);
|
|
15
15
|
recordRebalancerSuccess(): void;
|
|
16
|
-
recordRebalanceAmount(route:
|
|
16
|
+
recordRebalanceAmount(route: StrategyRoute, originTokenAmount: TokenAmount): void;
|
|
17
17
|
recordRebalancerFailure(): void;
|
|
18
18
|
recordPollingError(): void;
|
|
19
|
+
recordIntentCreated(route: StrategyRoute, strategy: string): void;
|
|
20
|
+
recordActionAttempt(route: StrategyRoute, succeeded: boolean): void;
|
|
19
21
|
processToken({ token, bridgedSupply, }: MonitorEvent['tokensInfo'][number]): Promise<void>;
|
|
20
22
|
private updateTokenMetrics;
|
|
21
23
|
static getWarpRouteCollateralTokenSymbol(tokens: Token[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAYnC,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAGhB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAYnC,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAGhB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAcpD,qBAAa,OAAQ,YAAW,QAAQ;IAKpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;gBAG5B,gBAAgB,EAAE,WAAW,EAC7B,gBAAgB,EAAE,qBAAqB,GAAG,IAAI,EAC9C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACpC,MAAM,EAAE,MAAM;IAahB,uBAAuB;IAMvB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW;IAW1E,uBAAuB;IAMvB,kBAAkB;IAMlB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM;IAW1D,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO;IAWtD,YAAY,CAAC,EACjB,KAAK,EACL,aAAa,GACd,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;YAWvB,kBAAkB;IA6KhC,MAAM,CAAC,iCAAiC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM;CAkClE"}
|
package/dist/metrics/Metrics.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getExtraLockboxBalance, getExtraLockboxInfo, getManagedLockBoxCollateralInfo, getSealevelAtaPayerBalance, getTokenBridgedBalance, getXERC20Info, startMetricsServer, } from '@hyperlane-xyz/metrics';
|
|
2
2
|
import { TokenStandard, TokenType, } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { ProtocolType, tryFn } from '@hyperlane-xyz/utils';
|
|
4
|
-
import { metricsRegister, rebalancerExecutionAmount, rebalancerExecutionTotal, rebalancerPollingErrorsTotal, updateManagedLockboxBalanceMetrics, updateNativeWalletBalanceMetrics, updateTokenBalanceMetrics, updateXERC20LimitsMetrics, } from './scripts/metrics.js';
|
|
4
|
+
import { metricsRegister, rebalancerActionsCreatedTotal, rebalancerExecutionAmount, rebalancerExecutionTotal, rebalancerIntentsCreatedTotal, rebalancerPollingErrorsTotal, updateManagedLockboxBalanceMetrics, updateNativeWalletBalanceMetrics, updateTokenBalanceMetrics, updateXERC20LimitsMetrics, } from './scripts/metrics.js';
|
|
5
5
|
export class Metrics {
|
|
6
6
|
tokenPriceGetter;
|
|
7
7
|
warpDeployConfig;
|
|
@@ -48,6 +48,26 @@ export class Metrics {
|
|
|
48
48
|
.labels({ warp_route_id: this.warpRouteId })
|
|
49
49
|
.inc();
|
|
50
50
|
}
|
|
51
|
+
recordIntentCreated(route, strategy) {
|
|
52
|
+
rebalancerIntentsCreatedTotal
|
|
53
|
+
.labels({
|
|
54
|
+
warp_route_id: this.warpRouteId,
|
|
55
|
+
strategy,
|
|
56
|
+
origin: route.origin,
|
|
57
|
+
destination: route.destination,
|
|
58
|
+
})
|
|
59
|
+
.inc();
|
|
60
|
+
}
|
|
61
|
+
recordActionAttempt(route, succeeded) {
|
|
62
|
+
rebalancerActionsCreatedTotal
|
|
63
|
+
.labels({
|
|
64
|
+
warp_route_id: this.warpRouteId,
|
|
65
|
+
origin: route.origin,
|
|
66
|
+
destination: route.destination,
|
|
67
|
+
succeeded: String(succeeded),
|
|
68
|
+
})
|
|
69
|
+
.inc();
|
|
70
|
+
}
|
|
51
71
|
async processToken({ token, bridgedSupply, }) {
|
|
52
72
|
await tryFn(async () => {
|
|
53
73
|
await this.updateTokenMetrics(token, bridgedSupply);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,sBAAsB,EACtB,mBAAmB,EACnB,+BAA+B,EAC/B,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,EACb,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,aAAa,EACb,SAAS,GAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAO3D,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,EAClC,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,OAAO;IAKC;IACA;IACA;IACA;IAPF,MAAM,CAAS;IACf,WAAW,CAAmB;IAE/C,YACmB,gBAA6B,EAC7B,gBAA8C,EAC9C,QAAkB,EAClB,WAAmB,EACpC,MAAc;QAJG,qBAAgB,GAAhB,gBAAgB,CAAa;QAC7B,qBAAgB,GAAhB,gBAAgB,CAA8B;QAC9C,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;QAGpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAEpC,uDAAuD;QACvD,IAAI,CAAC,WAAW,GAAG;YACjB,gBAAgB,EAAE,KAAK,EAAE,KAAY,EAAE,EAAE;gBACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,uBAAuB;QACrB,wBAAwB;aACrB,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;aAC9D,GAAG,EAAE,CAAC;IACX,CAAC;IAED,qBAAqB,
|
|
1
|
+
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ export declare const metricsRegister: Registry;
|
|
|
7
7
|
export declare const rebalancerExecutionTotal: Counter<"warp_route_id" | "succeeded">;
|
|
8
8
|
export declare const rebalancerExecutionAmount: Counter<"warp_route_id" | "origin" | "destination" | "token">;
|
|
9
9
|
export declare const rebalancerPollingErrorsTotal: Counter<"warp_route_id">;
|
|
10
|
+
export declare const rebalancerIntentsCreatedTotal: Counter<"strategy" | "warp_route_id" | "origin" | "destination">;
|
|
11
|
+
export declare const rebalancerActionsCreatedTotal: Counter<"warp_route_id" | "succeeded" | "origin" | "destination">;
|
|
10
12
|
/**
|
|
11
13
|
* Updates token balance metrics for a warp route token.
|
|
12
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/metrics/scripts/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAMjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,eAAe,UAAiB,CAAC;AAM9C,eAAO,MAAM,wBAAwB,wCAKnC,CAAC;AAEH,eAAO,MAAM,yBAAyB,+DAKpC,CAAC;AAEH,eAAO,MAAM,4BAA4B,0BAKvC,CAAC;AAEH;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,GACb,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,IAAI,CAUN"}
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/metrics/scripts/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAMjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,eAAe,UAAiB,CAAC;AAM9C,eAAO,MAAM,wBAAwB,wCAKnC,CAAC;AAEH,eAAO,MAAM,yBAAyB,+DAKpC,CAAC;AAEH,eAAO,MAAM,4BAA4B,0BAKvC,CAAC;AAEH,eAAO,MAAM,6BAA6B,kEAKxC,CAAC;AAEH,eAAO,MAAM,6BAA6B,mEAKxC,CAAC;AAEH;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,GACb,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,IAAI,CAUN"}
|
|
@@ -22,6 +22,18 @@ export const rebalancerPollingErrorsTotal = new Counter({
|
|
|
22
22
|
registers: [metricsRegister],
|
|
23
23
|
labelNames: ['warp_route_id'],
|
|
24
24
|
});
|
|
25
|
+
export const rebalancerIntentsCreatedTotal = new Counter({
|
|
26
|
+
name: 'hyperlane_rebalancer_intents_created_total',
|
|
27
|
+
help: 'Total number of rebalancing intents (routes) created.',
|
|
28
|
+
registers: [metricsRegister],
|
|
29
|
+
labelNames: ['warp_route_id', 'strategy', 'origin', 'destination'],
|
|
30
|
+
});
|
|
31
|
+
export const rebalancerActionsCreatedTotal = new Counter({
|
|
32
|
+
name: 'hyperlane_rebalancer_actions_created_total',
|
|
33
|
+
help: 'Total number of rebalancing actions (transactions) attempted.',
|
|
34
|
+
registers: [metricsRegister],
|
|
35
|
+
labelNames: ['warp_route_id', 'origin', 'destination', 'succeeded'],
|
|
36
|
+
});
|
|
25
37
|
/**
|
|
26
38
|
* Updates token balance metrics for a warp route token.
|
|
27
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/metrics/scripts/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAKL,uBAAuB,EACvB,kCAAkC,IAAI,wCAAwC,EAC9E,gCAAgC,IAAI,sCAAsC,EAC1E,yBAAyB,IAAI,+BAA+B,EAC5D,yBAAyB,IAAI,+BAA+B,GAC7D,MAAM,wBAAwB,CAAC;AAIhC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,QAAQ,EAAE,CAAC;AAE9C,oCAAoC;AACpC,MAAM,MAAM,GAAsB,uBAAuB,CAAC,eAAe,CAAC,CAAC;AAE3E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC;IAClD,IAAI,EAAE,uCAAuC;IAC7C,IAAI,EAAE,+CAA+C;IACrD,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,UAAU,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,OAAO,CAAC;IACnD,IAAI,EAAE,uCAAuC;IAC7C,IAAI,EAAE,oCAAoC;IAC1C,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,UAAU,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC;CAChE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,OAAO,CAAC;IACtD,IAAI,EAAE,2CAA2C;IACjD,IAAI,EAAE,0DAA0D;IAChE,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,UAAU,EAAE,CAAC,eAAe,CAAC;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAkB,EAClB,KAAY,EACZ,WAA6B,EAC7B,WAAmB,EACnB,MAAc;IAEd,+BAA+B,CAC7B,MAAM,EACN,QAAQ,EACR,KAAK,EACL,WAAW,EACX,WAAW,EACX,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAAkB,EAClB,SAAoB,EACpB,SAAiB,EACjB,YAAoB,EACpB,cAAsB,EACtB,WAA6B,EAC7B,WAAmB,EACnB,MAAc;IAEd,wCAAwC,CACtC,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAA4B,EAC5B,MAAc;IAEd,sCAAsC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAY,EACZ,MAAmB,EACnB,aAAsB,EACtB,WAAmB,EACnB,aAAsB,EACtB,MAAc;IAEd,+BAA+B,CAC7B,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,EACb,MAAM,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/metrics/scripts/metrics.ts"],"names":[],"mappings":"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"}
|