dexbot 1.3.3 → 1.4.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/dist/analysis/chart_utils.d.ts +11 -9
- package/dist/analysis/chart_utils.d.ts.map +1 -1
- package/dist/analysis/chart_utils.js +21 -16
- package/dist/analysis/chart_utils.js.map +1 -1
- package/dist/analysis/math_utils.d.ts +4 -13
- package/dist/analysis/math_utils.d.ts.map +1 -1
- package/dist/analysis/math_utils.js +16 -18
- package/dist/analysis/math_utils.js.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +3 -7
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +38 -34
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts +1 -4
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -1
- package/dist/analysis/trend_detection/hurst_analyzer.js +10 -7
- package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -1
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +6 -6
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -1
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js +23 -15
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -1
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +12 -13
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -1
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +16 -16
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -1
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +1 -4
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -1
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +10 -7
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +6 -13
- package/dist/bot.js.map +1 -1
- package/dist/credential-daemon.d.ts.map +1 -1
- package/dist/credential-daemon.js +21 -22
- package/dist/credential-daemon.js.map +1 -1
- package/dist/dexbot.d.ts.map +1 -1
- package/dist/dexbot.js +16 -15
- package/dist/dexbot.js.map +1 -1
- package/dist/market_adapter/ama_signal_runner.d.ts +1 -1
- package/dist/market_adapter/ama_signal_runner.d.ts.map +1 -1
- package/dist/market_adapter/ama_signal_runner.js +8 -20
- package/dist/market_adapter/ama_signal_runner.js.map +1 -1
- package/dist/market_adapter/candle_utils.d.ts +2 -10
- package/dist/market_adapter/candle_utils.d.ts.map +1 -1
- package/dist/market_adapter/candle_utils.js +7 -8
- package/dist/market_adapter/candle_utils.js.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.d.ts +12 -7
- package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.js +4 -5
- package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
- package/dist/market_adapter/core/config_normalizers.d.ts +4 -9
- package/dist/market_adapter/core/config_normalizers.d.ts.map +1 -1
- package/dist/market_adapter/core/config_normalizers.js +9 -9
- package/dist/market_adapter/core/config_normalizers.js.map +1 -1
- package/dist/market_adapter/core/kibana_candles.d.ts +16 -20
- package/dist/market_adapter/core/kibana_candles.d.ts.map +1 -1
- package/dist/market_adapter/core/kibana_candles.js +16 -15
- package/dist/market_adapter/core/kibana_candles.js.map +1 -1
- package/dist/market_adapter/core/kibana_client.d.ts +8 -11
- package/dist/market_adapter/core/kibana_client.d.ts.map +1 -1
- package/dist/market_adapter/core/kibana_client.js +13 -11
- package/dist/market_adapter/core/kibana_client.js.map +1 -1
- package/dist/market_adapter/core/kibana_market_candles.d.ts +5 -12
- package/dist/market_adapter/core/kibana_market_candles.d.ts.map +1 -1
- package/dist/market_adapter/core/kibana_market_candles.js +12 -21
- package/dist/market_adapter/core/kibana_market_candles.js.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.d.ts +75 -53
- package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.js +102 -98
- package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
- package/dist/market_adapter/core/strategies/ama.d.ts +21 -1
- package/dist/market_adapter/core/strategies/ama.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/ama.js +10 -10
- package/dist/market_adapter/core/strategies/ama.js.map +1 -1
- package/dist/market_adapter/core/strategies/ama_slope_model.d.ts +7 -11
- package/dist/market_adapter/core/strategies/ama_slope_model.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/ama_slope_model.js +23 -30
- package/dist/market_adapter/core/strategies/ama_slope_model.js.map +1 -1
- package/dist/market_adapter/core/strategies/atr/calculator.d.ts +5 -4
- package/dist/market_adapter/core/strategies/atr/calculator.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/atr/calculator.js +5 -3
- package/dist/market_adapter/core/strategies/atr/calculator.js.map +1 -1
- package/dist/market_adapter/core/strategies/collateral_manager.d.ts +4 -7
- package/dist/market_adapter/core/strategies/collateral_manager.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/collateral_manager.js +5 -4
- package/dist/market_adapter/core/strategies/collateral_manager.js.map +1 -1
- package/dist/market_adapter/core/strategies/regime_gate.d.ts +11 -19
- package/dist/market_adapter/core/strategies/regime_gate.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/regime_gate.js +22 -22
- package/dist/market_adapter/core/strategies/regime_gate.js.map +1 -1
- package/dist/market_adapter/index.d.ts +24 -2
- package/dist/market_adapter/index.d.ts.map +1 -1
- package/dist/market_adapter/index.js +82 -56
- package/dist/market_adapter/index.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +26 -37
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts +4 -12
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.js +100 -66
- package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
- package/dist/market_adapter/inputs/kibana_source.d.ts +4 -9
- package/dist/market_adapter/inputs/kibana_source.d.ts.map +1 -1
- package/dist/market_adapter/inputs/kibana_source.js +17 -18
- package/dist/market_adapter/inputs/kibana_source.js.map +1 -1
- package/dist/market_adapter/interval_utils.d.ts +1 -4
- package/dist/market_adapter/interval_utils.d.ts.map +1 -1
- package/dist/market_adapter/interval_utils.js +2 -3
- package/dist/market_adapter/interval_utils.js.map +1 -1
- package/dist/market_adapter/log_format.d.ts +1 -9
- package/dist/market_adapter/log_format.d.ts.map +1 -1
- package/dist/market_adapter/log_format.js +7 -8
- package/dist/market_adapter/log_format.js.map +1 -1
- package/dist/market_adapter/lp_chart_core.d.ts +1 -4
- package/dist/market_adapter/lp_chart_core.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_core.js +22 -20
- package/dist/market_adapter/lp_chart_core.js.map +1 -1
- package/dist/market_adapter/lp_chart_runner.d.ts +13 -24
- package/dist/market_adapter/lp_chart_runner.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_runner.js +58 -56
- package/dist/market_adapter/lp_chart_runner.js.map +1 -1
- package/dist/market_adapter/lp_chart_strategy_loader.d.ts +4 -17
- package/dist/market_adapter/lp_chart_strategy_loader.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_strategy_loader.js +36 -36
- package/dist/market_adapter/lp_chart_strategy_loader.js.map +1 -1
- package/dist/market_adapter/market_adapter.d.ts +51 -72
- package/dist/market_adapter/market_adapter.d.ts.map +1 -1
- package/dist/market_adapter/market_adapter.js +227 -192
- package/dist/market_adapter/market_adapter.js.map +1 -1
- package/dist/market_adapter/merge_lp_data.js +17 -16
- package/dist/market_adapter/merge_lp_data.js.map +1 -1
- package/dist/market_adapter/test_helpers.d.ts +9 -13
- package/dist/market_adapter/test_helpers.d.ts.map +1 -1
- package/dist/market_adapter/test_helpers.js +14 -14
- package/dist/market_adapter/test_helpers.js.map +1 -1
- package/dist/market_adapter/utils/adapter_client.d.ts +6 -14
- package/dist/market_adapter/utils/adapter_client.d.ts.map +1 -1
- package/dist/market_adapter/utils/adapter_client.js +16 -15
- package/dist/market_adapter/utils/adapter_client.js.map +1 -1
- package/dist/market_adapter/utils/atomic_write.d.ts +2 -5
- package/dist/market_adapter/utils/atomic_write.d.ts.map +1 -1
- package/dist/market_adapter/utils/atomic_write.js +5 -5
- package/dist/market_adapter/utils/atomic_write.js.map +1 -1
- package/dist/market_adapter/utils/chain.d.ts +19 -21
- package/dist/market_adapter/utils/chain.d.ts.map +1 -1
- package/dist/market_adapter/utils/chain.js +15 -16
- package/dist/market_adapter/utils/chain.js.map +1 -1
- package/dist/market_adapter/utils/data_discovery.d.ts +1 -4
- package/dist/market_adapter/utils/data_discovery.d.ts.map +1 -1
- package/dist/market_adapter/utils/data_discovery.js +10 -10
- package/dist/market_adapter/utils/data_discovery.js.map +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts +1 -6
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts.map +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js +14 -14
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js.map +1 -1
- package/dist/market_adapter/utils/file_lock.d.ts +1 -7
- package/dist/market_adapter/utils/file_lock.d.ts.map +1 -1
- package/dist/market_adapter/utils/file_lock.js +21 -25
- package/dist/market_adapter/utils/file_lock.js.map +1 -1
- package/dist/market_adapter/utils/native_history.d.ts +12 -12
- package/dist/market_adapter/utils/native_history.d.ts.map +1 -1
- package/dist/market_adapter/utils/native_history.js +15 -15
- package/dist/market_adapter/utils/native_history.js.map +1 -1
- package/dist/market_adapter/utils/paths.d.ts +2 -4
- package/dist/market_adapter/utils/paths.d.ts.map +1 -1
- package/dist/market_adapter/utils/paths.js +6 -5
- package/dist/market_adapter/utils/paths.js.map +1 -1
- package/dist/modules/account_bots.d.ts +7 -8
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +92 -114
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/account_orders.d.ts +5 -9
- package/dist/modules/account_orders.d.ts.map +1 -1
- package/dist/modules/account_orders.js +69 -32
- package/dist/modules/account_orders.js.map +1 -1
- package/dist/modules/authority_resolver.d.ts +32 -1
- package/dist/modules/authority_resolver.d.ts.map +1 -1
- package/dist/modules/authority_resolver.js +18 -12
- package/dist/modules/authority_resolver.js.map +1 -1
- package/dist/modules/bitshares-native/chain_client.d.ts +3 -8
- package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -1
- package/dist/modules/bitshares-native/chain_client.js +21 -16
- package/dist/modules/bitshares-native/chain_client.js.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts +21 -29
- package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc.browser.js +72 -38
- package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc.d.ts +9 -36
- package/dist/modules/bitshares-native/crypto/ecc.d.ts.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc.js +40 -83
- package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts +14 -1
- package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc_selector.js +5 -3
- package/dist/modules/bitshares-native/crypto/ecc_selector.js.map +1 -1
- package/dist/modules/bitshares-native/index.d.ts +10 -2
- package/dist/modules/bitshares-native/index.d.ts.map +1 -1
- package/dist/modules/bitshares-native/index.js +68 -31
- package/dist/modules/bitshares-native/index.js.map +1 -1
- package/dist/modules/bitshares-native/lru_cache.d.ts +1 -4
- package/dist/modules/bitshares-native/lru_cache.d.ts.map +1 -1
- package/dist/modules/bitshares-native/lru_cache.js +6 -3
- package/dist/modules/bitshares-native/lru_cache.js.map +1 -1
- package/dist/modules/bitshares-native/resolvers.d.ts +3 -6
- package/dist/modules/bitshares-native/resolvers.d.ts.map +1 -1
- package/dist/modules/bitshares-native/resolvers.js +11 -9
- package/dist/modules/bitshares-native/resolvers.js.map +1 -1
- package/dist/modules/bitshares-native/serial/chain_constants.d.ts +53 -55
- package/dist/modules/bitshares-native/serial/chain_constants.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/chain_constants.js +28 -27
- package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -1
- package/dist/modules/bitshares-native/serial/index.d.ts +5 -9
- package/dist/modules/bitshares-native/serial/index.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/index.js +46 -12
- package/dist/modules/bitshares-native/serial/index.js.map +1 -1
- package/dist/modules/bitshares-native/serial/operations.d.ts +102 -100
- package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/operations.js +473 -471
- package/dist/modules/bitshares-native/serial/operations.js.map +1 -1
- package/dist/modules/bitshares-native/serial/serializer.d.ts +2 -7
- package/dist/modules/bitshares-native/serial/serializer.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/serializer.js +8 -3
- package/dist/modules/bitshares-native/serial/serializer.js.map +1 -1
- package/dist/modules/bitshares-native/serial/types.d.ts +26 -41
- package/dist/modules/bitshares-native/serial/types.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/types.js +76 -42
- package/dist/modules/bitshares-native/serial/types.js.map +1 -1
- package/dist/modules/bitshares-native/signing_client.d.ts +1 -5
- package/dist/modules/bitshares-native/signing_client.d.ts.map +1 -1
- package/dist/modules/bitshares-native/signing_client.js +49 -11
- package/dist/modules/bitshares-native/signing_client.js.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.d.ts +1 -4
- package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.js +47 -84
- package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
- package/dist/modules/bitshares-native/transport.d.ts +1 -8
- package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
- package/dist/modules/bitshares-native/transport.js +22 -15
- package/dist/modules/bitshares-native/transport.js.map +1 -1
- package/dist/modules/bitshares-native/tx/builder.d.ts +3 -8
- package/dist/modules/bitshares-native/tx/builder.d.ts.map +1 -1
- package/dist/modules/bitshares-native/tx/builder.js +61 -23
- package/dist/modules/bitshares-native/tx/builder.js.map +1 -1
- package/dist/modules/bitshares-native/tx/tx_cache.d.ts +1 -8
- package/dist/modules/bitshares-native/tx/tx_cache.d.ts.map +1 -1
- package/dist/modules/bitshares-native/tx/tx_cache.js +21 -17
- package/dist/modules/bitshares-native/tx/tx_cache.js.map +1 -1
- package/dist/modules/bitshares_client.d.ts +12 -23
- package/dist/modules/bitshares_client.d.ts.map +1 -1
- package/dist/modules/bitshares_client.js +109 -56
- package/dist/modules/bitshares_client.js.map +1 -1
- package/dist/modules/bot_settings.d.ts +1 -13
- package/dist/modules/bot_settings.d.ts.map +1 -1
- package/dist/modules/bot_settings.js +34 -34
- package/dist/modules/bot_settings.js.map +1 -1
- package/dist/modules/bots_file_lock.d.ts +3 -9
- package/dist/modules/bots_file_lock.d.ts.map +1 -1
- package/dist/modules/bots_file_lock.js +8 -9
- package/dist/modules/bots_file_lock.js.map +1 -1
- package/dist/modules/chain_keys.d.ts +7 -39
- package/dist/modules/chain_keys.d.ts.map +1 -1
- package/dist/modules/chain_keys.js +126 -90
- package/dist/modules/chain_keys.js.map +1 -1
- package/dist/modules/chain_orders.d.ts +46 -52
- package/dist/modules/chain_orders.d.ts.map +1 -1
- package/dist/modules/chain_orders.js +152 -104
- package/dist/modules/chain_orders.js.map +1 -1
- package/dist/modules/config.d.ts +50 -57
- package/dist/modules/config.d.ts.map +1 -1
- package/dist/modules/config.js +28 -24
- package/dist/modules/config.js.map +1 -1
- package/dist/modules/constants.d.ts +492 -494
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +69 -39
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/cr_planner.d.ts +1 -13
- package/dist/modules/cr_planner.d.ts.map +1 -1
- package/dist/modules/cr_planner.js +28 -28
- package/dist/modules/cr_planner.js.map +1 -1
- package/dist/modules/credential_policy.d.ts +18 -33
- package/dist/modules/credential_policy.d.ts.map +1 -1
- package/dist/modules/credential_policy.js +114 -87
- package/dist/modules/credential_policy.js.map +1 -1
- package/dist/modules/credential_runtime.d.ts +11 -21
- package/dist/modules/credential_runtime.d.ts.map +1 -1
- package/dist/modules/credential_runtime.js +40 -40
- package/dist/modules/credential_runtime.js.map +1 -1
- package/dist/modules/credential_session_cache.d.ts +8 -8
- package/dist/modules/credential_session_cache.d.ts.map +1 -1
- package/dist/modules/credential_session_cache.js +41 -8
- package/dist/modules/credential_session_cache.js.map +1 -1
- package/dist/modules/credit_runtime.d.ts +51 -316
- package/dist/modules/credit_runtime.d.ts.map +1 -1
- package/dist/modules/credit_runtime.js +257 -183
- package/dist/modules/credit_runtime.js.map +1 -1
- package/dist/modules/crypto/browser_provider.js +6 -6
- package/dist/modules/crypto/browser_provider.js.map +1 -1
- package/dist/modules/crypto/index.d.ts.map +1 -1
- package/dist/modules/crypto/index.js +2 -0
- package/dist/modules/crypto/index.js.map +1 -1
- package/dist/modules/crypto/sync.js +3 -3
- package/dist/modules/crypto/sync.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +262 -81
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +156 -123
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +12 -9
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +144 -63
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_credential_client.d.ts +5 -11
- package/dist/modules/dexbot_credential_client.d.ts.map +1 -1
- package/dist/modules/dexbot_credential_client.js +32 -30
- package/dist/modules/dexbot_credential_client.js.map +1 -1
- package/dist/modules/dexbot_fill_runtime.d.ts +5 -20
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_fill_runtime.js +55 -116
- package/dist/modules/dexbot_fill_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +12 -12
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +55 -45
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/dexbot_startup_runtime.d.ts +2 -6
- package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_startup_runtime.js +122 -91
- package/dist/modules/dexbot_startup_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts +11 -24
- package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +62 -28
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/fund_registry.d.ts +1 -13
- package/dist/modules/fund_registry.d.ts.map +1 -1
- package/dist/modules/fund_registry.js +23 -21
- package/dist/modules/fund_registry.js.map +1 -1
- package/dist/modules/general_settings.d.ts +3 -7
- package/dist/modules/general_settings.d.ts.map +1 -1
- package/dist/modules/general_settings.js +15 -14
- package/dist/modules/general_settings.js.map +1 -1
- package/dist/modules/graceful_shutdown.d.ts +1 -6
- package/dist/modules/graceful_shutdown.d.ts.map +1 -1
- package/dist/modules/graceful_shutdown.js +19 -16
- package/dist/modules/graceful_shutdown.js.map +1 -1
- package/dist/modules/key_store.d.ts.map +1 -1
- package/dist/modules/key_store.js +53 -19
- package/dist/modules/key_store.js.map +1 -1
- package/dist/modules/launcher/bot_supervisor.d.ts +23 -66
- package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
- package/dist/modules/launcher/bot_supervisor.js +115 -107
- package/dist/modules/launcher/bot_supervisor.js.map +1 -1
- package/dist/modules/launcher/child_env.d.ts +2 -5
- package/dist/modules/launcher/child_env.d.ts.map +1 -1
- package/dist/modules/launcher/child_env.js +4 -4
- package/dist/modules/launcher/child_env.js.map +1 -1
- package/dist/modules/launcher/credential_bootstrap.d.ts +4 -8
- package/dist/modules/launcher/credential_bootstrap.d.ts.map +1 -1
- package/dist/modules/launcher/credential_bootstrap.js +30 -26
- package/dist/modules/launcher/credential_bootstrap.js.map +1 -1
- package/dist/modules/launcher/credential_daemon.d.ts +8 -15
- package/dist/modules/launcher/credential_daemon.d.ts.map +1 -1
- package/dist/modules/launcher/credential_daemon.js +72 -41
- package/dist/modules/launcher/credential_daemon.js.map +1 -1
- package/dist/modules/launcher/credential_secret.d.ts +1 -4
- package/dist/modules/launcher/credential_secret.d.ts.map +1 -1
- package/dist/modules/launcher/credential_secret.js +36 -4
- package/dist/modules/launcher/credential_secret.js.map +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.d.ts +32 -1
- package/dist/modules/launcher/foreign_cred_daemon.d.ts.map +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.js +25 -28
- package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -1
- package/dist/modules/launcher/headless_password.d.ts +1 -4
- package/dist/modules/launcher/headless_password.d.ts.map +1 -1
- package/dist/modules/launcher/headless_password.js +11 -11
- package/dist/modules/launcher/headless_password.js.map +1 -1
- package/dist/modules/launcher/launch_modes.d.ts +15 -14
- package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
- package/dist/modules/launcher/launch_modes.js +8 -8
- package/dist/modules/launcher/launch_modes.js.map +1 -1
- package/dist/modules/launcher/market_adapter_runtime.d.ts +10 -19
- package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/market_adapter_runtime.js +33 -33
- package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
- package/dist/modules/launcher/market_adapter_watchdog.d.ts +10 -17
- package/dist/modules/launcher/market_adapter_watchdog.d.ts.map +1 -1
- package/dist/modules/launcher/market_adapter_watchdog.js +42 -38
- package/dist/modules/launcher/market_adapter_watchdog.js.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.d.ts +28 -57
- package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.js +135 -108
- package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
- package/dist/modules/launcher/runtime_entry.d.ts +5 -10
- package/dist/modules/launcher/runtime_entry.d.ts.map +1 -1
- package/dist/modules/launcher/runtime_entry.js +14 -14
- package/dist/modules/launcher/runtime_entry.js.map +1 -1
- package/dist/modules/launcher/status_reporting.d.ts +17 -37
- package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
- package/dist/modules/launcher/status_reporting.js +35 -34
- package/dist/modules/launcher/status_reporting.js.map +1 -1
- package/dist/modules/launcher/supervisor_control.d.ts +1 -4
- package/dist/modules/launcher/supervisor_control.d.ts.map +1 -1
- package/dist/modules/launcher/supervisor_control.js +9 -4
- package/dist/modules/launcher/supervisor_control.js.map +1 -1
- package/dist/modules/logger.d.ts +3 -1
- package/dist/modules/logger.d.ts.map +1 -1
- package/dist/modules/logger.js +38 -28
- package/dist/modules/logger.js.map +1 -1
- package/dist/modules/market_adapter_whitelist.d.ts +2 -10
- package/dist/modules/market_adapter_whitelist.d.ts.map +1 -1
- package/dist/modules/market_adapter_whitelist.js +18 -16
- package/dist/modules/market_adapter_whitelist.js.map +1 -1
- package/dist/modules/node_health_cache.d.ts +2 -12
- package/dist/modules/node_health_cache.d.ts.map +1 -1
- package/dist/modules/node_health_cache.js +24 -24
- package/dist/modules/node_health_cache.js.map +1 -1
- package/dist/modules/node_manager.d.ts +1 -1
- package/dist/modules/node_manager.d.ts.map +1 -1
- package/dist/modules/node_manager.js +44 -38
- package/dist/modules/node_manager.js.map +1 -1
- package/dist/modules/order/accounting.d.ts +12 -12
- package/dist/modules/order/accounting.d.ts.map +1 -1
- package/dist/modules/order/accounting.js +111 -76
- package/dist/modules/order/accounting.js.map +1 -1
- package/dist/modules/order/async_lock.d.ts +1 -2
- package/dist/modules/order/async_lock.d.ts.map +1 -1
- package/dist/modules/order/async_lock.js +4 -4
- package/dist/modules/order/async_lock.js.map +1 -1
- package/dist/modules/order/export.d.ts +8 -14
- package/dist/modules/order/export.d.ts.map +1 -1
- package/dist/modules/order/export.js +77 -42
- package/dist/modules/order/export.js.map +1 -1
- package/dist/modules/order/format.d.ts +17 -22
- package/dist/modules/order/format.d.ts.map +1 -1
- package/dist/modules/order/format.js +25 -31
- package/dist/modules/order/format.js.map +1 -1
- package/dist/modules/order/grid.d.ts +18 -104
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +346 -212
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile.d.ts +8 -8
- package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile.js +80 -23
- package/dist/modules/order/grid_reconcile.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts +224 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +159 -73
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/index.d.ts +1 -1
- package/dist/modules/order/index.d.ts.map +1 -1
- package/dist/modules/order/index.js +42 -7
- package/dist/modules/order/index.js.map +1 -1
- package/dist/modules/order/logger.d.ts +6 -16
- package/dist/modules/order/logger.d.ts.map +1 -1
- package/dist/modules/order/logger.js +76 -53
- package/dist/modules/order/logger.js.map +1 -1
- package/dist/modules/order/logger_state.d.ts +4 -4
- package/dist/modules/order/logger_state.d.ts.map +1 -1
- package/dist/modules/order/logger_state.js +3 -1
- package/dist/modules/order/logger_state.js.map +1 -1
- package/dist/modules/order/manager.d.ts +160 -37
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +166 -128
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/processed_fill_store.d.ts +6 -10
- package/dist/modules/order/processed_fill_store.d.ts.map +1 -1
- package/dist/modules/order/processed_fill_store.js +10 -9
- package/dist/modules/order/processed_fill_store.js.map +1 -1
- package/dist/modules/order/strategy.d.ts +3 -3
- package/dist/modules/order/strategy.d.ts.map +1 -1
- package/dist/modules/order/strategy.js +29 -27
- package/dist/modules/order/strategy.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts +9 -19
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +176 -126
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +55 -85
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +155 -88
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts +27 -72
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +144 -105
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +103 -45
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +271 -150
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/order/utils/validate.d.ts +35 -47
- package/dist/modules/order/utils/validate.d.ts.map +1 -1
- package/dist/modules/order/utils/validate.js +233 -116
- package/dist/modules/order/utils/validate.js.map +1 -1
- package/dist/modules/order/working_grid.d.ts +1 -4
- package/dist/modules/order/working_grid.d.ts.map +1 -1
- package/dist/modules/order/working_grid.js +9 -7
- package/dist/modules/order/working_grid.js.map +1 -1
- package/dist/modules/path_api.js +2 -2
- package/dist/modules/path_api.js.map +1 -1
- package/dist/modules/paths.d.ts +50 -56
- package/dist/modules/paths.d.ts.map +1 -1
- package/dist/modules/paths.js +66 -57
- package/dist/modules/paths.js.map +1 -1
- package/dist/modules/process_discovery.d.ts +1 -1
- package/dist/modules/process_discovery.d.ts.map +1 -1
- package/dist/modules/process_discovery.js +7 -7
- package/dist/modules/process_discovery.js.map +1 -1
- package/dist/modules/runtime.d.ts +1 -1
- package/dist/modules/runtime.d.ts.map +1 -1
- package/dist/modules/runtime.js +4 -4
- package/dist/modules/runtime.js.map +1 -1
- package/dist/modules/runtime_settings.d.ts +1 -0
- package/dist/modules/runtime_settings.d.ts.map +1 -1
- package/dist/modules/runtime_settings.js +15 -10
- package/dist/modules/runtime_settings.js.map +1 -1
- package/dist/modules/settings_merge.d.ts +1 -4
- package/dist/modules/settings_merge.d.ts.map +1 -1
- package/dist/modules/settings_merge.js +2 -1
- package/dist/modules/settings_merge.js.map +1 -1
- package/dist/modules/storage/browser_adapter.d.ts +7 -3
- package/dist/modules/storage/browser_adapter.d.ts.map +1 -1
- package/dist/modules/storage/browser_adapter.js +2 -0
- package/dist/modules/storage/browser_adapter.js.map +1 -1
- package/dist/modules/storage/index.d.ts +2 -2
- package/dist/modules/storage/index.d.ts.map +1 -1
- package/dist/modules/storage/index.js +2 -5
- package/dist/modules/storage/index.js.map +1 -1
- package/dist/modules/storage/node_adapter.d.ts +3 -3
- package/dist/modules/storage/node_adapter.d.ts.map +1 -1
- package/dist/modules/storage/node_adapter.js +9 -7
- package/dist/modules/storage/node_adapter.js.map +1 -1
- package/dist/modules/storage/types.d.ts +13 -10
- package/dist/modules/storage/types.d.ts.map +1 -1
- package/dist/modules/types.d.ts +0 -2
- package/dist/modules/types.d.ts.map +1 -1
- package/dist/modules/utils/base58check.d.ts +1 -9
- package/dist/modules/utils/base58check.d.ts.map +1 -1
- package/dist/modules/utils/base58check.js +14 -16
- package/dist/modules/utils/base58check.js.map +1 -1
- package/dist/modules/utils/build_dir.d.ts +2 -5
- package/dist/modules/utils/build_dir.d.ts.map +1 -1
- package/dist/modules/utils/build_dir.js +6 -3
- package/dist/modules/utils/build_dir.js.map +1 -1
- package/dist/modules/utils/errors.d.ts +2 -0
- package/dist/modules/utils/errors.d.ts.map +1 -0
- package/dist/modules/utils/errors.js +12 -0
- package/dist/modules/utils/errors.js.map +1 -0
- package/dist/modules/utils/fs_utils.d.ts +1 -8
- package/dist/modules/utils/fs_utils.d.ts.map +1 -1
- package/dist/modules/utils/fs_utils.js +8 -3
- package/dist/modules/utils/fs_utils.js.map +1 -1
- package/dist/modules/utils/math_utils.d.ts +2 -6
- package/dist/modules/utils/math_utils.d.ts.map +1 -1
- package/dist/modules/utils/math_utils.js +6 -2
- package/dist/modules/utils/math_utils.js.map +1 -1
- package/dist/modules/validate_profiles.d.ts +1 -11
- package/dist/modules/validate_profiles.d.ts.map +1 -1
- package/dist/modules/validate_profiles.js +25 -27
- package/dist/modules/validate_profiles.js.map +1 -1
- package/dist/pm2.d.ts +7 -6
- package/dist/pm2.d.ts.map +1 -1
- package/dist/pm2.js +132 -106
- package/dist/pm2.js.map +1 -1
- package/dist/scripts/analyze-git.d.ts.map +1 -1
- package/dist/scripts/analyze-git.js +15 -11
- package/dist/scripts/analyze-git.js.map +1 -1
- package/dist/scripts/analyze-orders.d.ts +146 -1
- package/dist/scripts/analyze-orders.d.ts.map +1 -1
- package/dist/scripts/analyze-orders.js +81 -105
- package/dist/scripts/analyze-orders.js.map +1 -1
- package/dist/scripts/diagnose-pool-history.d.ts.map +1 -1
- package/dist/scripts/diagnose-pool-history.js +9 -8
- package/dist/scripts/diagnose-pool-history.js.map +1 -1
- package/dist/scripts/divergence-calc.d.ts.map +1 -1
- package/dist/scripts/divergence-calc.js +11 -8
- package/dist/scripts/divergence-calc.js.map +1 -1
- package/dist/scripts/fix-err-message.d.ts +3 -0
- package/dist/scripts/fix-err-message.d.ts.map +1 -0
- package/dist/scripts/fix-err-message.js +198 -0
- package/dist/scripts/fix-err-message.js.map +1 -0
- package/dist/scripts/generate_lp_chart.d.ts +2 -9
- package/dist/scripts/generate_lp_chart.d.ts.map +1 -1
- package/dist/scripts/generate_lp_chart.js +14 -10
- package/dist/scripts/generate_lp_chart.js.map +1 -1
- package/dist/scripts/generate_mainnet_corpus_report.js +4 -4
- package/dist/scripts/generate_mainnet_corpus_report.js.map +1 -1
- package/dist/scripts/generate_market_adapter_whitelist.d.ts +17 -1
- package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -1
- package/dist/scripts/generate_market_adapter_whitelist.js +23 -20
- package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -1
- package/dist/scripts/migrate_bot_keys.d.ts +1 -4
- package/dist/scripts/migrate_bot_keys.d.ts.map +1 -1
- package/dist/scripts/migrate_bot_keys.js +48 -124
- package/dist/scripts/migrate_bot_keys.js.map +1 -1
- package/dist/scripts/native_release_gates.d.ts.map +1 -1
- package/dist/scripts/native_release_gates.js +18 -14
- package/dist/scripts/native_release_gates.js.map +1 -1
- package/dist/scripts/print_grid.js +1 -1
- package/dist/scripts/print_grid.js.map +1 -1
- package/dist/scripts/run-tests.js +1 -0
- package/dist/scripts/run-tests.js.map +1 -1
- package/dist/scripts/runner.d.ts +1 -11
- package/dist/scripts/runner.d.ts.map +1 -1
- package/dist/scripts/runner.js +21 -19
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/test-credit-renewal.d.ts.map +1 -1
- package/dist/scripts/test-credit-renewal.js +2 -1
- package/dist/scripts/test-credit-renewal.js.map +1 -1
- package/dist/scripts/update.d.ts.map +1 -1
- package/dist/scripts/update.js +85 -79
- package/dist/scripts/update.js.map +1 -1
- package/dist/scripts/validate_bots.js +2 -2
- package/dist/scripts/validate_bots.js.map +1 -1
- package/dist/unlock.d.ts +4 -17
- package/dist/unlock.d.ts.map +1 -1
- package/dist/unlock.js +141 -108
- package/dist/unlock.js.map +1 -1
- package/package.json +1 -1
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +0 -3
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +0 -1
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +0 -149
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +0 -1
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +0 -3
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +0 -1
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +0 -387
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +0 -1
- package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +0 -3
- package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +0 -1
- package/dist/analysis/ama_fitting/calibrate_convergence_er.js +0 -200
- package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +0 -1
- package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +0 -3
- package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +0 -1
- package/dist/analysis/ama_fitting/fetch_lp_candles.js +0 -212
- package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +0 -1
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +0 -31
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +0 -1
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +0 -249
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +0 -1
- package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +0 -2
- package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +0 -1
- package/dist/analysis/ama_fitting/optimizer_high_resolution.js +0 -782
- package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +0 -1
- package/dist/analysis/analyze_derivatives.d.ts +0 -95
- package/dist/analysis/analyze_derivatives.d.ts.map +0 -1
- package/dist/analysis/analyze_derivatives.js +0 -295
- package/dist/analysis/analyze_derivatives.js.map +0 -1
- package/dist/analysis/analyze_dynamic_weight.d.ts +0 -14
- package/dist/analysis/analyze_dynamic_weight.d.ts.map +0 -1
- package/dist/analysis/analyze_dynamic_weight.js +0 -207
- package/dist/analysis/analyze_dynamic_weight.js.map +0 -1
- package/dist/analysis/analyze_kalman.d.ts +0 -13
- package/dist/analysis/analyze_kalman.d.ts.map +0 -1
- package/dist/analysis/analyze_kalman.js +0 -123
- package/dist/analysis/analyze_kalman.js.map +0 -1
- package/dist/analysis/analyze_regime.d.ts +0 -20
- package/dist/analysis/analyze_regime.d.ts.map +0 -1
- package/dist/analysis/analyze_regime.js +0 -139
- package/dist/analysis/analyze_regime.js.map +0 -1
- package/dist/analysis/analyze_regime_windows.d.ts +0 -19
- package/dist/analysis/analyze_regime_windows.d.ts.map +0 -1
- package/dist/analysis/analyze_regime_windows.js +0 -413
- package/dist/analysis/analyze_regime_windows.js.map +0 -1
- package/dist/analysis/analyze_risk_profile.d.ts +0 -3
- package/dist/analysis/analyze_risk_profile.d.ts.map +0 -1
- package/dist/analysis/analyze_risk_profile.js +0 -159
- package/dist/analysis/analyze_risk_profile.js.map +0 -1
- package/dist/analysis/analyze_trade_heatmap.d.ts +0 -3
- package/dist/analysis/analyze_trade_heatmap.d.ts.map +0 -1
- package/dist/analysis/analyze_trade_heatmap.js +0 -367
- package/dist/analysis/analyze_trade_heatmap.js.map +0 -1
- package/dist/analysis/analyze_volatility.d.ts +0 -22
- package/dist/analysis/analyze_volatility.d.ts.map +0 -1
- package/dist/analysis/analyze_volatility.js +0 -172
- package/dist/analysis/analyze_volatility.js.map +0 -1
- package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +0 -99
- package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +0 -1
- package/dist/analysis/bot_fitting/backtest_ama_sweep.js +0 -804
- package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +0 -1
- package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +0 -2
- package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +0 -1
- package/dist/analysis/bot_fitting/backtest_bot_fitting.js +0 -347
- package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +0 -1
- package/dist/analysis/bot_fitting/shared_utils.d.ts +0 -15
- package/dist/analysis/bot_fitting/shared_utils.d.ts.map +0 -1
- package/dist/analysis/bot_fitting/shared_utils.js +0 -48
- package/dist/analysis/bot_fitting/shared_utils.js.map +0 -1
- package/dist/analysis/bot_key_utils.d.ts +0 -22
- package/dist/analysis/bot_key_utils.d.ts.map +0 -1
- package/dist/analysis/bot_key_utils.js +0 -162
- package/dist/analysis/bot_key_utils.js.map +0 -1
- package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +0 -3
- package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +0 -1
- package/dist/analysis/bot_usage/discover_bot_accounts.js +0 -498
- package/dist/analysis/bot_usage/discover_bot_accounts.js.map +0 -1
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +0 -546
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +0 -1
- package/dist/analysis/bot_usage/kibana_bot_queries.js +0 -427
- package/dist/analysis/bot_usage/kibana_bot_queries.js.map +0 -1
- package/dist/analysis/derivative_chart_generator.d.ts +0 -18
- package/dist/analysis/derivative_chart_generator.d.ts.map +0 -1
- package/dist/analysis/derivative_chart_generator.js +0 -896
- package/dist/analysis/derivative_chart_generator.js.map +0 -1
- package/dist/analysis/price_sources.d.ts +0 -34
- package/dist/analysis/price_sources.d.ts.map +0 -1
- package/dist/analysis/price_sources.js +0 -103
- package/dist/analysis/price_sources.js.map +0 -1
- package/dist/analysis/trade_profitability.d.ts +0 -115
- package/dist/analysis/trade_profitability.d.ts.map +0 -1
- package/dist/analysis/trade_profitability.js +0 -1247
- package/dist/analysis/trade_profitability.js.map +0 -1
- package/dist/analysis/tradingview/analyze_tradingview.d.ts +0 -36
- package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +0 -1
- package/dist/analysis/tradingview/analyze_tradingview.js +0 -172
- package/dist/analysis/tradingview/analyze_tradingview.js.map +0 -1
- package/dist/analysis/trend_detection/derivative_analyzer.d.ts +0 -250
- package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +0 -1
- package/dist/analysis/trend_detection/derivative_analyzer.js +0 -903
- package/dist/analysis/trend_detection/derivative_analyzer.js.map +0 -1
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +0 -6
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +0 -1
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +0 -1450
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +0 -1
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +0 -6
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +0 -1
- package/dist/analysis/trend_detection/kalman_chart_generator.js +0 -408
- package/dist/analysis/trend_detection/kalman_chart_generator.js.map +0 -1
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts +0 -6
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +0 -1
- package/dist/analysis/trend_detection/regime_chart_generator.js +0 -345
- package/dist/analysis/trend_detection/regime_chart_generator.js.map +0 -1
- package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +0 -2
- package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +0 -1
- package/dist/analysis/trend_detection/tests/test_kalman_trend.js +0 -130
- package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +0 -1
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +0 -2
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +0 -1
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +0 -38
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +0 -1
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +0 -6
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +0 -1
- package/dist/analysis/trend_detection/volatility_chart_generator.js +0 -732
- package/dist/analysis/trend_detection/volatility_chart_generator.js.map +0 -1
|
@@ -10,14 +10,15 @@
|
|
|
10
10
|
*/
|
|
11
11
|
const chainOrders = require('./chain_orders');
|
|
12
12
|
const { BroadcastUncertainError } = require('./dexbot_credential_client');
|
|
13
|
-
const { buildCreateOrderArgs, buildCreateOpFingerprint, extractBatchOperationResults, formatUnmatchedChainOrder, convertToSpreadPlaceholder, buildOutsideInPairGroups, } = require('./order/utils/order');
|
|
13
|
+
const { buildCreateOrderArgs, buildCreateOpFingerprint, extractBatchOperationResults, formatUnmatchedChainOrder, convertToSpreadPlaceholder, buildOutsideInPairGroups, isOrderPlaced, } = require('./order/utils/order');
|
|
14
14
|
const { validateCreateTargetSlots } = require('./order/utils/validate');
|
|
15
|
-
const { validateOrderSize } = require('./order/utils/math');
|
|
15
|
+
const { validateOrderSize, findPriceCollision } = require('./order/utils/math');
|
|
16
16
|
// Lazy accessor so test mocks on the math module export take effect at call time.
|
|
17
17
|
function getAssetFees(...args) { return require('./order/utils/math').getAssetFees(...args); }
|
|
18
|
-
const { COW_ACTIONS, ORDER_STATES, ORDER_TYPES, REBALANCE_STATES,
|
|
18
|
+
const { COW_ACTIONS, ORDER_STATES, ORDER_TYPES, REBALANCE_STATES, } = require('./constants');
|
|
19
19
|
const Format = require('./order/format');
|
|
20
20
|
const { WorkingGrid } = require('./order/working_grid');
|
|
21
|
+
const { getErrorMessage } = require('./utils/errors');
|
|
21
22
|
/**
|
|
22
23
|
* Group orders into outside-in pairs for atomic create execution.
|
|
23
24
|
* @param {Array} orders
|
|
@@ -26,8 +27,8 @@ const { WorkingGrid } = require('./order/working_grid');
|
|
|
26
27
|
function buildOutsideInPairGroupsForOrders(orders) {
|
|
27
28
|
return buildOutsideInPairGroups(orders, {
|
|
28
29
|
isValid: Boolean,
|
|
29
|
-
getType: o => o.type,
|
|
30
|
-
getPrice: o => o.price,
|
|
30
|
+
getType: (o) => o.type,
|
|
31
|
+
getPrice: (o) => o.price,
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
@@ -37,9 +38,9 @@ function buildOutsideInPairGroupsForOrders(orders) {
|
|
|
37
38
|
*/
|
|
38
39
|
function buildOutsideInPairGroupsForCreateEntries(createEntries) {
|
|
39
40
|
return buildOutsideInPairGroups(createEntries, {
|
|
40
|
-
isValid: e => Boolean(e?.context?.order),
|
|
41
|
-
getType: e => e.context.order.type,
|
|
42
|
-
getPrice: e => e.context.order.price,
|
|
41
|
+
isValid: (e) => Boolean(e?.context?.order),
|
|
42
|
+
getType: (e) => e.context.order.type,
|
|
43
|
+
getPrice: (e) => e.context.order.price,
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
@@ -100,8 +101,8 @@ async function recoverAfterMissingCreateResults(bot, reason = 'missing create op
|
|
|
100
101
|
}
|
|
101
102
|
const preRecoveryMissingCreateBlockers = Array.isArray(bot.manager._lastUnmatchedChainOrders)
|
|
102
103
|
? bot.manager._lastUnmatchedChainOrders
|
|
103
|
-
.filter(order => order?.reason === 'missing-create-result')
|
|
104
|
-
.map(order => ({ ...order }))
|
|
104
|
+
.filter((order) => order?.reason === 'missing-create-result')
|
|
105
|
+
.map((order) => ({ ...order }))
|
|
105
106
|
: [];
|
|
106
107
|
const openOrders = await chainOrders.readOpenOrders(accountRef);
|
|
107
108
|
const recoveryResult = await bot.manager.syncFromOpenOrders(openOrders, {
|
|
@@ -113,15 +114,15 @@ async function recoverAfterMissingCreateResults(bot, reason = 'missing create op
|
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
catch (err) {
|
|
116
|
-
bot.manager?.logger?.log?.(`[COW] CRITICAL: Recovery sync failed after ${reason}: ${err
|
|
117
|
+
bot.manager?.logger?.log?.(`[COW] CRITICAL: Recovery sync failed after ${reason}: ${getErrorMessage(err)}`, 'error');
|
|
117
118
|
if (typeof bot.manager?.requestStructuralGridResync === 'function') {
|
|
118
119
|
try {
|
|
119
120
|
await bot.manager.requestStructuralGridResync(`recovery sync failed after ${reason}`, {
|
|
120
|
-
error: err
|
|
121
|
+
error: getErrorMessage(err)
|
|
121
122
|
});
|
|
122
123
|
}
|
|
123
124
|
catch (scheduleErr) {
|
|
124
|
-
bot.manager?.logger?.log?.(`[COW] CRITICAL: Failed to schedule structural resync after recovery failure: ${scheduleErr
|
|
125
|
+
bot.manager?.logger?.log?.(`[COW] CRITICAL: Failed to schedule structural resync after recovery failure: ${getErrorMessage(scheduleErr)}`, 'error');
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
128
|
}
|
|
@@ -136,15 +137,15 @@ function preserveMissingCreateBlockersAfterRecovery(bot, blockers, recoveryResul
|
|
|
136
137
|
if (!Array.isArray(blockers) || blockers.length === 0 || !bot.manager)
|
|
137
138
|
return;
|
|
138
139
|
const adoptedSlotIds = new Set((Array.isArray(recoveryResult?.updatedOrders) ? recoveryResult.updatedOrders : [])
|
|
139
|
-
.filter(order => order?.id && order?.orderId)
|
|
140
|
-
.map(order => order.id));
|
|
141
|
-
const unresolvedBlockers = blockers.filter(blocker => !blocker.slotId || !adoptedSlotIds.has(blocker.slotId));
|
|
140
|
+
.filter((order) => order?.id && order?.orderId)
|
|
141
|
+
.map((order) => order.id));
|
|
142
|
+
const unresolvedBlockers = blockers.filter((blocker) => !blocker.slotId || !adoptedSlotIds.has(blocker.slotId));
|
|
142
143
|
if (unresolvedBlockers.length === 0)
|
|
143
144
|
return;
|
|
144
145
|
const currentUnmatched = Array.isArray(bot.manager._lastUnmatchedChainOrders)
|
|
145
146
|
? bot.manager._lastUnmatchedChainOrders
|
|
146
147
|
: [];
|
|
147
|
-
const currentKeys = new Set(currentUnmatched.map(order => `${order.reason || ''}:${order.slotId || ''}:${order.operationIndex ?? ''}`));
|
|
148
|
+
const currentKeys = new Set(currentUnmatched.map((order) => `${order.reason || ''}:${order.slotId || ''}:${order.operationIndex ?? ''}`));
|
|
148
149
|
const restored = [...currentUnmatched];
|
|
149
150
|
for (const blocker of unresolvedBlockers) {
|
|
150
151
|
const key = `${blocker.reason || ''}:${blocker.slotId || ''}:${blocker.operationIndex ?? ''}`;
|
|
@@ -165,7 +166,7 @@ function preserveMissingCreateBlockersAfterRecovery(bot, blockers, recoveryResul
|
|
|
165
166
|
*/
|
|
166
167
|
function markMissingCreateResultsAsStructuralBlocker(bot, missingCreateResults) {
|
|
167
168
|
const blockers = Array.isArray(missingCreateResults)
|
|
168
|
-
? missingCreateResults.map(item => {
|
|
169
|
+
? missingCreateResults.map((item) => {
|
|
169
170
|
const order = item.ctx?.order || {};
|
|
170
171
|
const fingerprint = [
|
|
171
172
|
`type=${order.type || 'unknown'}`,
|
|
@@ -188,7 +189,7 @@ function markMissingCreateResultsAsStructuralBlocker(bot, missingCreateResults)
|
|
|
188
189
|
const existing = Array.isArray(bot.manager._lastUnmatchedChainOrders)
|
|
189
190
|
? bot.manager._lastUnmatchedChainOrders
|
|
190
191
|
: [];
|
|
191
|
-
const keys = new Set(existing.map(order => `${order.reason || ''}:${order.slotId || ''}:${order.operationIndex ?? ''}`));
|
|
192
|
+
const keys = new Set(existing.map((order) => `${order.reason || ''}:${order.slotId || ''}:${order.operationIndex ?? ''}`));
|
|
192
193
|
const merged = [...existing];
|
|
193
194
|
for (const blocker of blockers) {
|
|
194
195
|
const key = `${blocker.reason || ''}:${blocker.slotId || ''}:${blocker.operationIndex ?? ''}`;
|
|
@@ -406,12 +407,12 @@ async function reconcileAfterUncertainBroadcast(bot, err, opContexts, options =
|
|
|
406
407
|
* @param {Object} options
|
|
407
408
|
* @returns {Promise<Object>}
|
|
408
409
|
*/
|
|
409
|
-
async function reconcileAfterUncertainBroadcastImpl(bot, err, opContexts,
|
|
410
|
+
async function reconcileAfterUncertainBroadcastImpl(bot, err, opContexts, _options) {
|
|
410
411
|
const startedAt = Date.now();
|
|
411
412
|
const pending = (bot.manager && bot.manager._pendingBroadcasts instanceof Map)
|
|
412
413
|
? Array.from(bot.manager._pendingBroadcasts.values())
|
|
413
414
|
: [];
|
|
414
|
-
const createContextCount = opContexts.filter(c => c && c.kind === 'create').length;
|
|
415
|
+
const createContextCount = opContexts.filter((c) => c && c.kind === 'create').length;
|
|
415
416
|
const nonCreateContextCount = opContexts.length - createContextCount;
|
|
416
417
|
bot.manager.logger.log(`[COW][UNCERTAIN] batchId=${err?.batchId || 'n/a'} ops=${opContexts.length} ` +
|
|
417
418
|
`creates=${createContextCount} nonCreates=${nonCreateContextCount} ` +
|
|
@@ -459,9 +460,9 @@ async function reconcileAfterUncertainBroadcastImpl(bot, err, opContexts, option
|
|
|
459
460
|
// 2b. Second pass: search for any unmatched chain orders by fingerprint
|
|
460
461
|
// across all known pending slots.
|
|
461
462
|
if (adopted.length < pending.length) {
|
|
462
|
-
const adoptedSlotIds = new Set(adopted.map(a => a.entry.slotId));
|
|
463
|
+
const adoptedSlotIds = new Set(adopted.map((a) => a.entry.slotId));
|
|
463
464
|
for (const o of chainSnapshot) {
|
|
464
|
-
if (adopted.some(a => a.match.id === o.id))
|
|
465
|
+
if (adopted.some((a) => a.match.id === o.id))
|
|
465
466
|
continue;
|
|
466
467
|
for (const entry of pending) {
|
|
467
468
|
if (adoptedSlotIds.has(entry.slotId))
|
|
@@ -475,10 +476,49 @@ async function reconcileAfterUncertainBroadcastImpl(bot, err, opContexts, option
|
|
|
475
476
|
}
|
|
476
477
|
}
|
|
477
478
|
// Rebuild discarded list to remove newly adopted entries.
|
|
478
|
-
const newlyAdoptedSlotIds = new Set(adopted.map(a => a.entry.slotId));
|
|
479
|
-
discarded = pending.filter(e => !newlyAdoptedSlotIds.has(e.slotId));
|
|
479
|
+
const newlyAdoptedSlotIds = new Set(adopted.map((a) => a.entry.slotId));
|
|
480
|
+
discarded = pending.filter((e) => !newlyAdoptedSlotIds.has(e.slotId));
|
|
481
|
+
}
|
|
482
|
+
// 3a. Re-read chain for discarded CREATE entries to catch broadcasts that
|
|
483
|
+
// landed between the initial read and this point (TOCTOU window).
|
|
484
|
+
if (discarded.length > 0 && typeof chainOrders.readOpenOrders === 'function') {
|
|
485
|
+
const createDiscarded = discarded.filter((e) => {
|
|
486
|
+
const ctx = opContexts[e.ctxIndex];
|
|
487
|
+
return ctx && ctx.kind === 'create';
|
|
488
|
+
});
|
|
489
|
+
if (createDiscarded.length > 0) {
|
|
490
|
+
try {
|
|
491
|
+
const freshChain = await chainOrders.readOpenOrders(accountRef);
|
|
492
|
+
const remainingDiscarded = [];
|
|
493
|
+
for (const entry of discarded) {
|
|
494
|
+
const ctx = opContexts[entry.ctxIndex];
|
|
495
|
+
if (ctx && ctx.kind === 'create') {
|
|
496
|
+
const match = findChainOrderForSlot(bot, freshChain, entry.slotId, {
|
|
497
|
+
sell: entry.finalInts?.sell,
|
|
498
|
+
receive: entry.finalInts?.receive,
|
|
499
|
+
orderType: entry.orderType,
|
|
500
|
+
fingerprint: entry.fingerprint,
|
|
501
|
+
});
|
|
502
|
+
if (match) {
|
|
503
|
+
adopted.push({ entry, match });
|
|
504
|
+
bot.manager.logger.log(`[COW][UNCERTAIN] Late-adopted discarded CREATE for slot ${entry.slotId} (${match.id}) via fresh chain read`, 'info');
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
remainingDiscarded.push(entry);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
remainingDiscarded.push(entry);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
discarded = remainingDiscarded;
|
|
515
|
+
}
|
|
516
|
+
catch {
|
|
517
|
+
bot.manager.logger.log('[COW][UNCERTAIN] Fresh chain read for late adoption failed; proceeding with original discard decisions.', 'warn');
|
|
518
|
+
}
|
|
519
|
+
}
|
|
480
520
|
}
|
|
481
|
-
//
|
|
521
|
+
// 3b. Apply decisions
|
|
482
522
|
let adoptedCount = 0;
|
|
483
523
|
let discardedCount = 0;
|
|
484
524
|
for (const { entry, match } of adopted) {
|
|
@@ -574,8 +614,8 @@ async function reconcileAfterUncertainBroadcastImpl(bot, err, opContexts, option
|
|
|
574
614
|
// chain snapshot.
|
|
575
615
|
const alreadyScheduled = bot._structuralGridResyncRunning || bot._structuralGridResyncTimer;
|
|
576
616
|
if (!alreadyScheduled && chainSnapshot.length > 0) {
|
|
577
|
-
const reconciledOrderIds = new Set(adopted.map(a => a.match?.id).filter(Boolean));
|
|
578
|
-
const unreconciledCount = chainSnapshot.filter(o => !reconciledOrderIds.has(o.id)).length;
|
|
617
|
+
const reconciledOrderIds = new Set(adopted.map((a) => a.match?.id).filter(Boolean));
|
|
618
|
+
const unreconciledCount = chainSnapshot.filter((o) => !reconciledOrderIds.has(o.id)).length;
|
|
579
619
|
if (unreconciledCount > 0) {
|
|
580
620
|
bot.manager.logger.log(`[COW][UNCERTAIN] ${unreconciledCount} chain order(s) remain unreconciled after uncertain broadcast recovery. ` +
|
|
581
621
|
`These may be legitimate pre-existing orders or leftovers from a prior cycle. Requesting structural resync.`, 'warn');
|
|
@@ -625,11 +665,11 @@ async function autoCancelOneUnmatchedOrphan(bot) {
|
|
|
625
665
|
if (unmatched.length === 0) {
|
|
626
666
|
return { cancelled: false, reason: 'no-unmatched' };
|
|
627
667
|
}
|
|
628
|
-
const fingerprinted = unmatched.find(u => u && u.fingerprint);
|
|
668
|
+
const fingerprinted = unmatched.find((u) => u && u.fingerprint);
|
|
629
669
|
if (fingerprinted) {
|
|
630
670
|
return { cancelled: false, reason: 'fingerprinted-handle-via-recovery' };
|
|
631
671
|
}
|
|
632
|
-
const target = unmatched.find(u => u && u.reason === 'price-drift-orphan');
|
|
672
|
+
const target = unmatched.find((u) => u && u.reason === 'price-drift-orphan');
|
|
633
673
|
if (!target) {
|
|
634
674
|
return { cancelled: false, reason: 'no-price-drift-orphan', message: 'no price-drift orphan to cancel; other unmatched orders are adoptable' };
|
|
635
675
|
}
|
|
@@ -661,10 +701,10 @@ async function autoCancelOneUnmatchedOrphan(bot) {
|
|
|
661
701
|
* @param {Array} opContexts
|
|
662
702
|
* @returns {boolean}
|
|
663
703
|
*/
|
|
664
|
-
function shouldExecuteCreatePairMode(
|
|
704
|
+
function shouldExecuteCreatePairMode(_bot, opContexts) {
|
|
665
705
|
if (!Array.isArray(opContexts) || opContexts.length < 2)
|
|
666
706
|
return false;
|
|
667
|
-
if (!opContexts.every(ctx => ctx?.kind === 'create' && ctx?.order))
|
|
707
|
+
if (!opContexts.every((ctx) => ctx?.kind === 'create' && ctx?.order))
|
|
668
708
|
return false;
|
|
669
709
|
let hasBuy = false;
|
|
670
710
|
let hasSell = false;
|
|
@@ -741,8 +781,8 @@ async function executeOperationsWithStrategy(bot, operations, opContexts) {
|
|
|
741
781
|
const mergedContexts = [];
|
|
742
782
|
for (let idx = 0; idx < groups.length; idx++) {
|
|
743
783
|
const group = groups[idx];
|
|
744
|
-
const groupOps = group.map(e => e.operation);
|
|
745
|
-
const groupContexts = group.map(e => e.context);
|
|
784
|
+
const groupOps = group.map((e) => e.operation);
|
|
785
|
+
const groupContexts = group.map((e) => e.context);
|
|
746
786
|
bot.manager.logger.log(`[COW] Broadcasting create pair group ${idx + 1}/${groups.length} (${groupOps.length} op${groupOps.length > 1 ? 's' : ''}, outside->center)`, 'info');
|
|
747
787
|
let groupResult;
|
|
748
788
|
try {
|
|
@@ -877,7 +917,7 @@ function validateOperationFunds(bot, operations, assetA, assetB) {
|
|
|
877
917
|
* @param {number|null} [fallbackSize=null]
|
|
878
918
|
* @returns {number|null}
|
|
879
919
|
*/
|
|
880
|
-
function resolveIdealSizeForValidation(
|
|
920
|
+
function resolveIdealSizeForValidation(_bot, orderLike, fallbackSize = null) {
|
|
881
921
|
const candidates = [
|
|
882
922
|
orderLike?.idealSize,
|
|
883
923
|
orderLike?.order?.idealSize,
|
|
@@ -911,7 +951,7 @@ function validateOrderSizeForExecution(bot, size, type, orderLike = null, fallba
|
|
|
911
951
|
* @param {Object|Array} plan
|
|
912
952
|
* @returns {Array}
|
|
913
953
|
*/
|
|
914
|
-
function buildActionsFromPlan(
|
|
954
|
+
function buildActionsFromPlan(_bot, plan) {
|
|
915
955
|
const normalizedPlan = Array.isArray(plan)
|
|
916
956
|
? { ordersToPlace: plan }
|
|
917
957
|
: (plan || {});
|
|
@@ -1089,9 +1129,9 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1089
1129
|
bot._currentCycleId = (Number.isFinite(Number(bot._currentCycleId)) ? Number(bot._currentCycleId) : 0) + 1;
|
|
1090
1130
|
const { workingGrid, workingIndexes, workingBoundary, actions } = cowResult;
|
|
1091
1131
|
if (bot.config.dryRun) {
|
|
1092
|
-
const cancelCount = actions.filter(a => a.type === COW_ACTIONS.CANCEL).length;
|
|
1093
|
-
const createCount = actions.filter(a => a.type === COW_ACTIONS.CREATE).length;
|
|
1094
|
-
const updateCount = actions.filter(a => a.type === COW_ACTIONS.UPDATE).length;
|
|
1132
|
+
const cancelCount = actions.filter((a) => a.type === COW_ACTIONS.CANCEL).length;
|
|
1133
|
+
const createCount = actions.filter((a) => a.type === COW_ACTIONS.CREATE).length;
|
|
1134
|
+
const updateCount = actions.filter((a) => a.type === COW_ACTIONS.UPDATE).length;
|
|
1095
1135
|
if (cancelCount > 0)
|
|
1096
1136
|
bot.manager.logger.log(`Dry run: would cancel ${cancelCount} orders`, 'info');
|
|
1097
1137
|
if (createCount > 0)
|
|
@@ -1100,11 +1140,28 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1100
1140
|
bot.manager.logger.log(`Dry run: would update ${updateCount} orders`, 'info');
|
|
1101
1141
|
return { executed: true, hadRotation: false };
|
|
1102
1142
|
}
|
|
1103
|
-
const
|
|
1143
|
+
const chainOrderCandidates = Array.isArray(bot.manager?._lastUnmatchedChainOrders)
|
|
1144
|
+
? bot.manager._lastUnmatchedChainOrders
|
|
1145
|
+
: [];
|
|
1146
|
+
const createSlotValidation = validateCreateTargetSlots(actions, bot.manager?.orders, bot.manager?.assets, chainOrderCandidates);
|
|
1104
1147
|
if (!createSlotValidation.isValid) {
|
|
1105
1148
|
for (const violation of createSlotValidation.violations) {
|
|
1106
|
-
|
|
1107
|
-
|
|
1149
|
+
let reason;
|
|
1150
|
+
switch (violation.reason) {
|
|
1151
|
+
case 'price_collision':
|
|
1152
|
+
reason = `existing placed order ${violation.currentOrderId} at same price`;
|
|
1153
|
+
break;
|
|
1154
|
+
case 'same_batch_price_collision':
|
|
1155
|
+
reason = `another CREATE in the same batch at same price`;
|
|
1156
|
+
break;
|
|
1157
|
+
case 'chain_orphan_collision':
|
|
1158
|
+
reason = `unmatched on-chain order ${violation.currentOrderId} at same price`;
|
|
1159
|
+
break;
|
|
1160
|
+
default:
|
|
1161
|
+
reason = `existing orderId=${violation.currentOrderId}`;
|
|
1162
|
+
}
|
|
1163
|
+
bot.manager.logger.log(`[COW] Rejecting CREATE for slot ${violation.targetId}: ${reason} ` +
|
|
1164
|
+
`(type=${violation.currentType}, state=${violation.currentState})`, 'error');
|
|
1108
1165
|
}
|
|
1109
1166
|
return {
|
|
1110
1167
|
executed: false,
|
|
@@ -1114,10 +1171,10 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1114
1171
|
hadRotation: false
|
|
1115
1172
|
};
|
|
1116
1173
|
}
|
|
1117
|
-
const hasCreateActions = actions.some(action => action.type === COW_ACTIONS.CREATE);
|
|
1174
|
+
const hasCreateActions = actions.some((action) => action.type === COW_ACTIONS.CREATE);
|
|
1118
1175
|
if (hasCreateActions && bot.manager?._recoveryExhaustedAt) {
|
|
1119
1176
|
const exhaustedAge = Date.now() - bot.manager._recoveryExhaustedAt;
|
|
1120
|
-
bot.manager.logger.log?.(`[RECOVERY-EXHAUSTED] Blocking ${actions.filter(a => a.type === COW_ACTIONS.CREATE).length} CREATE(s) ` +
|
|
1177
|
+
bot.manager.logger.log?.(`[RECOVERY-EXHAUSTED] Blocking ${actions.filter((a) => a.type === COW_ACTIONS.CREATE).length} CREATE(s) ` +
|
|
1121
1178
|
`(exhausted ${(exhaustedAge / 1000).toFixed(0)}s ago). ` +
|
|
1122
1179
|
`Waiting for next fill or sync cycle to reset recovery state.`, 'warn');
|
|
1123
1180
|
return {
|
|
@@ -1140,11 +1197,11 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1140
1197
|
if (typeof bot.manager.requestStructuralGridResync === 'function') {
|
|
1141
1198
|
if (bot.manager._recoveryState)
|
|
1142
1199
|
bot.manager._recoveryState = { ...bot.manager._recoveryState, structuralResyncRequested: true };
|
|
1143
|
-
await bot.manager.requestStructuralGridResync('pending broadcasts before COW create', { pendingBroadcasts: pendingBroadcasts.map(p => p.slotId) });
|
|
1200
|
+
await bot.manager.requestStructuralGridResync('pending broadcasts before COW create', { pendingBroadcasts: pendingBroadcasts.map((p) => p.slotId) });
|
|
1144
1201
|
}
|
|
1145
1202
|
try {
|
|
1146
1203
|
await reconcileAfterUncertainBroadcast(bot, new BroadcastUncertainError('rejected CREATE batch had pending broadcasts', {
|
|
1147
|
-
operations: pendingBroadcasts.map(p => p.order),
|
|
1204
|
+
operations: pendingBroadcasts.map((p) => p.order),
|
|
1148
1205
|
accountName: bot.account,
|
|
1149
1206
|
batchId: bot._currentBatchId || null,
|
|
1150
1207
|
payload: null,
|
|
@@ -1163,7 +1220,7 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1163
1220
|
}
|
|
1164
1221
|
const unmatchedSample = unmatchedChainOrders
|
|
1165
1222
|
.slice(0, 3)
|
|
1166
|
-
.map(o => formatUnmatchedChainOrderForLog(o))
|
|
1223
|
+
.map((o) => formatUnmatchedChainOrderForLog(o))
|
|
1167
1224
|
.join(' | ');
|
|
1168
1225
|
bot.manager.logger.log(`[COW] ${unmatchedChainOrders.length} unmatched chain order(s) blocking CREATES ` +
|
|
1169
1226
|
(unmatchedSample ? `(${unmatchedSample})` : '') +
|
|
@@ -1251,12 +1308,12 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1251
1308
|
opContexts.push({ kind: 'cancel', order });
|
|
1252
1309
|
}
|
|
1253
1310
|
catch (err) {
|
|
1254
|
-
const orderNotFound = /\bnot found\b/i.test(err
|
|
1311
|
+
const orderNotFound = /\bnot found\b/i.test(getErrorMessage(err)) || /\bdoes not exist\b/i.test(getErrorMessage(err));
|
|
1255
1312
|
if (orderNotFound) {
|
|
1256
1313
|
bot.manager.logger.log(`[COW] Cancel skipped for ${action.id} (${action.orderId}): order already removed from chain`, 'debug');
|
|
1257
1314
|
}
|
|
1258
1315
|
else {
|
|
1259
|
-
bot.manager.logger.log(`Failed to prepare cancel op for ${action.id}: ${err
|
|
1316
|
+
bot.manager.logger.log(`Failed to prepare cancel op for ${action.id}: ${getErrorMessage(err)}`, 'error');
|
|
1260
1317
|
}
|
|
1261
1318
|
}
|
|
1262
1319
|
}
|
|
@@ -1282,6 +1339,16 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1282
1339
|
`drifted from planned=${plannedPrice} to live=${livePrice} ` +
|
|
1283
1340
|
`(diff=${priceDrift}); rebuilding CREATE op with live price.`, 'debug');
|
|
1284
1341
|
}
|
|
1342
|
+
const createPrice = effectiveOrder.price;
|
|
1343
|
+
const createSize = effectiveOrder.size;
|
|
1344
|
+
const batchCollision = findPriceCollision(opContexts, order.id, createPrice, createSize, order.type, bot.manager.assets, (ctx) => ctx.kind === 'create');
|
|
1345
|
+
if (batchCollision) {
|
|
1346
|
+
bot.manager.logger.log(`[COW] Skipping CREATE for ${order.id} at ${Format.formatPrice6(createPrice)}: ` +
|
|
1347
|
+
`same-batch CREATE ${batchCollision.id} already at ` +
|
|
1348
|
+
`price ${Format.formatPrice6(batchCollision.order.price)}. ` +
|
|
1349
|
+
`The next reconcile cycle will resolve the mismatch.`, 'warn');
|
|
1350
|
+
continue;
|
|
1351
|
+
}
|
|
1285
1352
|
const args = buildCreateOrderArgs(effectiveOrder, assetA, assetB);
|
|
1286
1353
|
const buildResult = await chainOrders.buildCreateOrderOp(bot.account, args.amountToSell, args.sellAssetId, args.minToReceive, args.receiveAssetId, null);
|
|
1287
1354
|
if (!buildResult) {
|
|
@@ -1298,7 +1365,7 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1298
1365
|
});
|
|
1299
1366
|
}
|
|
1300
1367
|
catch (err) {
|
|
1301
|
-
bot.manager.logger.log(`Failed to prepare create op for ${action.id}: ${err
|
|
1368
|
+
bot.manager.logger.log(`Failed to prepare create op for ${action.id}: ${getErrorMessage(err)}`, 'error');
|
|
1302
1369
|
}
|
|
1303
1370
|
}
|
|
1304
1371
|
else if (action.type === COW_ACTIONS.UPDATE) {
|
|
@@ -1370,7 +1437,7 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1370
1437
|
opContexts.push({ kind: 'size-update', updateInfo: { partialOrder, newSize }, finalInts: op.finalInts });
|
|
1371
1438
|
}
|
|
1372
1439
|
catch (err) {
|
|
1373
|
-
const orderNotFound = /\bnot found\b/i.test(err
|
|
1440
|
+
const orderNotFound = /\bnot found\b/i.test(getErrorMessage(err)) || /\bdoes not exist\b/i.test(getErrorMessage(err));
|
|
1374
1441
|
if (orderNotFound) {
|
|
1375
1442
|
try {
|
|
1376
1443
|
const fbOrder = action.order || bot.manager.orders.get(action.id);
|
|
@@ -1393,6 +1460,20 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1393
1460
|
bot.manager.logger.log(`[COW] CREATE fallback for ${action.id} rejected by size validation: ${sizeCheck.reason}`, 'warn');
|
|
1394
1461
|
}
|
|
1395
1462
|
else if (fbType && fbSize > 0 && fbPrice > 0) {
|
|
1463
|
+
const fbCollision = findPriceCollision(bot.manager.orders.values(), targetSlotId, fbPrice, fbSize, fbType, bot.manager.assets, isOrderPlaced);
|
|
1464
|
+
if (fbCollision) {
|
|
1465
|
+
bot.manager.logger.log(`[COW] Skipping CREATE fallback for ${targetSlotId} at ${Format.formatPrice6(fbPrice)}: ` +
|
|
1466
|
+
`existing placed order ${fbCollision.id} (${fbCollision.orderId}) ` +
|
|
1467
|
+
`already at price ${Format.formatPrice6(fbCollision.price)}.`, 'warn');
|
|
1468
|
+
continue;
|
|
1469
|
+
}
|
|
1470
|
+
const fbBatchCollision = findPriceCollision(opContexts, targetSlotId, fbPrice, fbSize, fbType, bot.manager.assets, (ctx) => ctx.kind === 'create');
|
|
1471
|
+
if (fbBatchCollision) {
|
|
1472
|
+
bot.manager.logger.log(`[COW] Skipping CREATE fallback for ${targetSlotId} at ${Format.formatPrice6(fbPrice)}: ` +
|
|
1473
|
+
`same-batch CREATE ${fbBatchCollision.id} already at ` +
|
|
1474
|
+
`price ${Format.formatPrice6(fbBatchCollision.order.price)}.`, 'warn');
|
|
1475
|
+
continue;
|
|
1476
|
+
}
|
|
1396
1477
|
const fbArgs = buildCreateOrderArgs({ type: fbType, size: fbSize, price: fbPrice }, assetA, assetB);
|
|
1397
1478
|
const fbResult = await chainOrders.buildCreateOrderOp(bot.account, fbArgs.amountToSell, fbArgs.sellAssetId, fbArgs.minToReceive, fbArgs.receiveAssetId, null);
|
|
1398
1479
|
if (fbResult) {
|
|
@@ -1416,10 +1497,10 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1416
1497
|
}
|
|
1417
1498
|
}
|
|
1418
1499
|
catch (fbErr) {
|
|
1419
|
-
bot.manager.logger.log(`[COW] CREATE fallback also failed for ${action.id}: ${fbErr
|
|
1500
|
+
bot.manager.logger.log(`[COW] CREATE fallback also failed for ${action.id}: ${getErrorMessage(fbErr)}`, 'warn');
|
|
1420
1501
|
}
|
|
1421
1502
|
}
|
|
1422
|
-
bot.manager.logger.log(`Failed to prepare update op for ${action.id}: ${err
|
|
1503
|
+
bot.manager.logger.log(`Failed to prepare update op for ${action.id}: ${getErrorMessage(err)}`, 'error');
|
|
1423
1504
|
}
|
|
1424
1505
|
}
|
|
1425
1506
|
}
|
|
@@ -1451,7 +1532,7 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1451
1532
|
const missingCreateResults = findMissingCreateResultContexts(preCommitResults, executedContexts);
|
|
1452
1533
|
if (missingCreateResults.length > 0) {
|
|
1453
1534
|
const missingSlots = missingCreateResults
|
|
1454
|
-
.map(item => item.ctx?.order?.id || item.ctx?.id || `op-${item.index}`)
|
|
1535
|
+
.map((item) => item.ctx?.order?.id || item.ctx?.id || `op-${item.index}`)
|
|
1455
1536
|
.join(', ');
|
|
1456
1537
|
bot.manager.logger.log(`[COW] Refusing to commit working grid: ${missingCreateResults.length} CREATE op(s) ` +
|
|
1457
1538
|
`returned no chainOrderId (${missingSlots}). Discarding working grid and syncing from chain.`, 'error');
|
|
@@ -1462,7 +1543,7 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1462
1543
|
return {
|
|
1463
1544
|
executed: false,
|
|
1464
1545
|
hadRotation: false,
|
|
1465
|
-
missingCreateResults: missingCreateResults.map(item => ({
|
|
1546
|
+
missingCreateResults: missingCreateResults.map((item) => ({
|
|
1466
1547
|
index: item.index,
|
|
1467
1548
|
slotId: item.ctx?.order?.id || item.ctx?.id || null
|
|
1468
1549
|
}))
|
|
@@ -1498,26 +1579,26 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1498
1579
|
bot._metrics.batchesExecuted++;
|
|
1499
1580
|
bot.manager._clearWorkingGridRef();
|
|
1500
1581
|
clearPendingBroadcasts(bot.manager?._pendingBroadcasts);
|
|
1501
|
-
return { executed: true, hadRotation: true
|
|
1582
|
+
return { ...batchResult, executed: true, hadRotation: true };
|
|
1502
1583
|
}
|
|
1503
1584
|
else {
|
|
1504
1585
|
bot.manager.logger.log('[COW] Blockchain failed - working grid discarded, master unchanged', 'warn');
|
|
1505
1586
|
bot.manager._clearWorkingGridRef();
|
|
1506
1587
|
clearPendingBroadcasts(bot.manager?._pendingBroadcasts);
|
|
1507
|
-
return { executed: false, hadRotation: false
|
|
1588
|
+
return { ...result, executed: false, hadRotation: false };
|
|
1508
1589
|
}
|
|
1509
1590
|
}
|
|
1510
1591
|
finally {
|
|
1511
1592
|
bot.manager._throwOnIllegalState = false;
|
|
1512
1593
|
await bot.manager.resumeFundRecalc();
|
|
1513
1594
|
bot.manager.stopBroadcasting();
|
|
1514
|
-
const createCount = actions.filter(a => a.type === COW_ACTIONS.CREATE).length;
|
|
1515
|
-
const cancelCount = actions.filter(a => a.type === COW_ACTIONS.CANCEL).length;
|
|
1595
|
+
const createCount = actions.filter((a) => a.type === COW_ACTIONS.CREATE).length;
|
|
1596
|
+
const cancelCount = actions.filter((a) => a.type === COW_ACTIONS.CANCEL).length;
|
|
1516
1597
|
bot.manager.logger.logFundsStatus(bot.manager, `AFTER COW batch (created=${createCount}, cancelled=${cancelCount})`);
|
|
1517
1598
|
}
|
|
1518
1599
|
}
|
|
1519
1600
|
catch (err) {
|
|
1520
|
-
bot.manager.logger.log(`[COW] Batch transaction failed: ${err
|
|
1601
|
+
bot.manager.logger.log(`[COW] Batch transaction failed: ${getErrorMessage(err)}`, 'error');
|
|
1521
1602
|
if (err?.partialOnChainState) {
|
|
1522
1603
|
bot.manager.logger.log(`[COW] Non-atomic grouped execution detected (${err.groupsBroadcast}/${err.groupsTotal} groups broadcast). Local rollback cannot undo confirmed on-chain operations; next sync/reconcile will converge state.`, 'warn');
|
|
1523
1604
|
}
|
|
@@ -1537,11 +1618,11 @@ async function updateOrdersOnChainBatchCOW(bot, cowResult) {
|
|
|
1537
1618
|
];
|
|
1538
1619
|
for (const pattern of patterns) {
|
|
1539
1620
|
let m;
|
|
1540
|
-
while ((m = pattern.exec(err
|
|
1621
|
+
while ((m = pattern.exec(getErrorMessage(err))) !== null) {
|
|
1541
1622
|
staleOrderIds.add(m[1]);
|
|
1542
1623
|
}
|
|
1543
1624
|
}
|
|
1544
|
-
if (/Cannot deduct all or more from order than order contains/.test(err
|
|
1625
|
+
if (/Cannot deduct all or more from order than order contains/.test(getErrorMessage(err))) {
|
|
1545
1626
|
return await bot._recoverBatchSizeDrift(err, opContexts);
|
|
1546
1627
|
}
|
|
1547
1628
|
if (staleOrderIds.size > 0) {
|
|
@@ -1724,7 +1805,7 @@ async function processBatchResults(bot, result, opContexts) {
|
|
|
1724
1805
|
}
|
|
1725
1806
|
}
|
|
1726
1807
|
if (updatesToApply.length > 0) {
|
|
1727
|
-
await bot.manager.applyGridUpdateBatch(updatesToApply.map(u => u.order), 'batch-results-process', { skipAccounting: true });
|
|
1808
|
+
await bot.manager.applyGridUpdateBatch(updatesToApply.map((u) => u.order), 'batch-results-process', { skipAccounting: true });
|
|
1728
1809
|
}
|
|
1729
1810
|
return {
|
|
1730
1811
|
executed: true,
|