dexbot 1.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +287 -0
- package/claw/README.md +513 -0
- package/claw/scripts/memu_runner.py +385 -0
- package/claw/skills/bitshares-guide/SKILL.md +14 -0
- package/claw/skills/bitshares-guide/references/example-skill-shells.md +18 -0
- package/claw/skills/bitshares-guide/references/presentation-patterns.md +19 -0
- package/claw/skills/bitshares-guide/references/scope-guardrails.md +9 -0
- package/claw/skills/launcher-ops/SKILL.md +18 -0
- package/claw/skills/launcher-ops/references/launcher-workflow.md +23 -0
- package/claw/skills/margin-trading/SKILL.md +23 -0
- package/claw/skills/margin-trading/references/honest-asset-list.md +74 -0
- package/claw/skills/margin-trading/references/honest-assets.md +44 -0
- package/claw/skills/margin-trading/references/position-management.md +203 -0
- package/claw/skills/margin-trading/references/trading-concepts.md +80 -0
- package/claw/skills/memu-memory/SKILL.md +218 -0
- package/claw/skills/shared/references/js-automation-overview.md +24 -0
- package/claw/skills/shared/references/safety-and-staleness.md +11 -0
- package/claw/skills/shared/references/skill-boundaries.md +17 -0
- package/claw/skills/trend-detection/SKILL.md +33 -0
- package/claw/skills/trend-detection/agents/openai.yaml +3 -0
- package/claw/skills/trend-detection/references/service.md +45 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +149 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +3 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +387 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.js +212 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +31 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +249 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +2 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
- package/dist/analysis/analyze_derivatives.d.ts +95 -0
- package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
- package/dist/analysis/analyze_derivatives.js +295 -0
- package/dist/analysis/analyze_derivatives.js.map +1 -0
- package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
- package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
- package/dist/analysis/analyze_dynamic_weight.js +208 -0
- package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
- package/dist/analysis/analyze_kalman.d.ts +13 -0
- package/dist/analysis/analyze_kalman.d.ts.map +1 -0
- package/dist/analysis/analyze_kalman.js +123 -0
- package/dist/analysis/analyze_kalman.js.map +1 -0
- package/dist/analysis/analyze_regime.d.ts +20 -0
- package/dist/analysis/analyze_regime.d.ts.map +1 -0
- package/dist/analysis/analyze_regime.js +139 -0
- package/dist/analysis/analyze_regime.js.map +1 -0
- package/dist/analysis/analyze_regime_windows.d.ts +19 -0
- package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
- package/dist/analysis/analyze_regime_windows.js +413 -0
- package/dist/analysis/analyze_regime_windows.js.map +1 -0
- package/dist/analysis/analyze_risk_profile.d.ts +3 -0
- package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
- package/dist/analysis/analyze_risk_profile.js +159 -0
- package/dist/analysis/analyze_risk_profile.js.map +1 -0
- package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
- package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
- package/dist/analysis/analyze_trade_heatmap.js +367 -0
- package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
- package/dist/analysis/analyze_volatility.d.ts +22 -0
- package/dist/analysis/analyze_volatility.d.ts.map +1 -0
- package/dist/analysis/analyze_volatility.js +172 -0
- package/dist/analysis/analyze_volatility.js.map +1 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +99 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.js +804 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.js +347 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
- package/dist/analysis/bot_fitting/shared_utils.d.ts +15 -0
- package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
- package/dist/analysis/bot_fitting/shared_utils.js +48 -0
- package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
- package/dist/analysis/bot_key_utils.d.ts +16 -0
- package/dist/analysis/bot_key_utils.d.ts.map +1 -0
- package/dist/analysis/bot_key_utils.js +61 -0
- package/dist/analysis/bot_key_utils.js.map +1 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.js +498 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +546 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.js +427 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
- package/dist/analysis/chart_utils.d.ts +13 -0
- package/dist/analysis/chart_utils.d.ts.map +1 -0
- package/dist/analysis/chart_utils.js +142 -0
- package/dist/analysis/chart_utils.js.map +1 -0
- package/dist/analysis/derivative_chart_generator.d.ts +18 -0
- package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
- package/dist/analysis/derivative_chart_generator.js +896 -0
- package/dist/analysis/derivative_chart_generator.js.map +1 -0
- package/dist/analysis/math_utils.d.ts +35 -0
- package/dist/analysis/math_utils.d.ts.map +1 -0
- package/dist/analysis/math_utils.js +121 -0
- package/dist/analysis/math_utils.js.map +1 -0
- package/dist/analysis/price_sources.d.ts +34 -0
- package/dist/analysis/price_sources.d.ts.map +1 -0
- package/dist/analysis/price_sources.js +103 -0
- package/dist/analysis/price_sources.js.map +1 -0
- package/dist/analysis/trade_profitability.d.ts +115 -0
- package/dist/analysis/trade_profitability.d.ts.map +1 -0
- package/dist/analysis/trade_profitability.js +1247 -0
- package/dist/analysis/trade_profitability.js.map +1 -0
- package/dist/analysis/tradingview/analyze_tradingview.d.ts +38 -0
- package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
- package/dist/analysis/tradingview/analyze_tradingview.js +212 -0
- package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +9 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1717 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/derivative_analyzer.d.ts +250 -0
- package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/derivative_analyzer.js +903 -0
- package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +6 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1449 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts +42 -0
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/hurst_analyzer.js +159 -0
- package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +6 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.js +408 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +103 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js +229 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +34 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +89 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +39 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +132 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts +6 -0
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/regime_chart_generator.js +345 -0
- package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.js +130 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +38 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +6 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.js +732 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
- package/dist/bot.d.ts +49 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +221 -0
- package/dist/bot.js.map +1 -0
- package/dist/credential-daemon.d.ts +64 -0
- package/dist/credential-daemon.d.ts.map +1 -0
- package/dist/credential-daemon.js +987 -0
- package/dist/credential-daemon.js.map +1 -0
- package/dist/dexbot.d.ts +87 -0
- package/dist/dexbot.d.ts.map +1 -0
- package/dist/dexbot.js +1222 -0
- package/dist/dexbot.js.map +1 -0
- package/dist/market_adapter/ama_signal_runner.d.ts +3 -0
- package/dist/market_adapter/ama_signal_runner.d.ts.map +1 -0
- package/dist/market_adapter/ama_signal_runner.js +175 -0
- package/dist/market_adapter/ama_signal_runner.js.map +1 -0
- package/dist/market_adapter/candle_utils.d.ts +57 -0
- package/dist/market_adapter/candle_utils.d.ts.map +1 -0
- package/dist/market_adapter/candle_utils.js +252 -0
- package/dist/market_adapter/candle_utils.js.map +1 -0
- package/dist/market_adapter/core/asymmetric_bounds.d.ts +20 -0
- package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -0
- package/dist/market_adapter/core/asymmetric_bounds.js +88 -0
- package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -0
- package/dist/market_adapter/core/config_normalizers.d.ts +10 -0
- package/dist/market_adapter/core/config_normalizers.d.ts.map +1 -0
- package/dist/market_adapter/core/config_normalizers.js +24 -0
- package/dist/market_adapter/core/config_normalizers.js.map +1 -0
- package/dist/market_adapter/core/kibana_candles.d.ts +74 -0
- package/dist/market_adapter/core/kibana_candles.d.ts.map +1 -0
- package/dist/market_adapter/core/kibana_candles.js +249 -0
- package/dist/market_adapter/core/kibana_candles.js.map +1 -0
- package/dist/market_adapter/core/kibana_client.d.ts +27 -0
- package/dist/market_adapter/core/kibana_client.d.ts.map +1 -0
- package/dist/market_adapter/core/kibana_client.js +120 -0
- package/dist/market_adapter/core/kibana_client.js.map +1 -0
- package/dist/market_adapter/core/kibana_market_candles.d.ts +143 -0
- package/dist/market_adapter/core/kibana_market_candles.d.ts.map +1 -0
- package/dist/market_adapter/core/kibana_market_candles.js +170 -0
- package/dist/market_adapter/core/kibana_market_candles.js.map +1 -0
- package/dist/market_adapter/core/market_adapter_service.d.ts +210 -0
- package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -0
- package/dist/market_adapter/core/market_adapter_service.js +2328 -0
- package/dist/market_adapter/core/market_adapter_service.js.map +1 -0
- package/dist/market_adapter/core/strategies/ama.d.ts +2 -0
- package/dist/market_adapter/core/strategies/ama.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/ama.js +138 -0
- package/dist/market_adapter/core/strategies/ama.js.map +1 -0
- package/dist/market_adapter/core/strategies/ama_slope_model.d.ts +50 -0
- package/dist/market_adapter/core/strategies/ama_slope_model.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/ama_slope_model.js +143 -0
- package/dist/market_adapter/core/strategies/ama_slope_model.js.map +1 -0
- package/dist/market_adapter/core/strategies/atr/calculator.d.ts +12 -0
- package/dist/market_adapter/core/strategies/atr/calculator.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/atr/calculator.js +47 -0
- package/dist/market_adapter/core/strategies/atr/calculator.js.map +1 -0
- package/dist/market_adapter/core/strategies/collateral_manager.d.ts +32 -0
- package/dist/market_adapter/core/strategies/collateral_manager.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/collateral_manager.js +68 -0
- package/dist/market_adapter/core/strategies/collateral_manager.js.map +1 -0
- package/dist/market_adapter/core/strategies/regime_gate.d.ts +66 -0
- package/dist/market_adapter/core/strategies/regime_gate.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/regime_gate.js +189 -0
- package/dist/market_adapter/core/strategies/regime_gate.js.map +1 -0
- package/dist/market_adapter/index.d.ts +10 -0
- package/dist/market_adapter/index.d.ts.map +1 -0
- package/dist/market_adapter/index.js +71 -0
- package/dist/market_adapter/index.js.map +1 -0
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.d.ts +3 -0
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.d.ts.map +1 -0
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1165 -0
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -0
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts +54 -0
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -0
- package/dist/market_adapter/inputs/fetch_lp_data.js +743 -0
- package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -0
- package/dist/market_adapter/inputs/kibana_source.d.ts +68 -0
- package/dist/market_adapter/inputs/kibana_source.d.ts.map +1 -0
- package/dist/market_adapter/inputs/kibana_source.js +143 -0
- package/dist/market_adapter/inputs/kibana_source.js.map +1 -0
- package/dist/market_adapter/interval_utils.d.ts +6 -0
- package/dist/market_adapter/interval_utils.d.ts.map +1 -0
- package/dist/market_adapter/interval_utils.js +14 -0
- package/dist/market_adapter/interval_utils.js.map +1 -0
- package/dist/market_adapter/log_format.d.ts +16 -0
- package/dist/market_adapter/log_format.d.ts.map +1 -0
- package/dist/market_adapter/log_format.js +72 -0
- package/dist/market_adapter/log_format.js.map +1 -0
- package/dist/market_adapter/lp_chart_core.d.ts +6 -0
- package/dist/market_adapter/lp_chart_core.d.ts.map +1 -0
- package/dist/market_adapter/lp_chart_core.js +874 -0
- package/dist/market_adapter/lp_chart_core.js.map +1 -0
- package/dist/market_adapter/lp_chart_runner.d.ts +135 -0
- package/dist/market_adapter/lp_chart_runner.d.ts.map +1 -0
- package/dist/market_adapter/lp_chart_runner.js +337 -0
- package/dist/market_adapter/lp_chart_runner.js.map +1 -0
- package/dist/market_adapter/lp_chart_strategy_loader.d.ts +23 -0
- package/dist/market_adapter/lp_chart_strategy_loader.d.ts.map +1 -0
- package/dist/market_adapter/lp_chart_strategy_loader.js +169 -0
- package/dist/market_adapter/lp_chart_strategy_loader.js.map +1 -0
- package/dist/market_adapter/market_adapter.d.ts +133 -0
- package/dist/market_adapter/market_adapter.d.ts.map +1 -0
- package/dist/market_adapter/market_adapter.js +1331 -0
- package/dist/market_adapter/market_adapter.js.map +1 -0
- package/dist/market_adapter/merge_lp_data.d.ts +3 -0
- package/dist/market_adapter/merge_lp_data.d.ts.map +1 -0
- package/dist/market_adapter/merge_lp_data.js +125 -0
- package/dist/market_adapter/merge_lp_data.js.map +1 -0
- package/dist/market_adapter/test_helpers.d.ts +14 -0
- package/dist/market_adapter/test_helpers.d.ts.map +1 -0
- package/dist/market_adapter/test_helpers.js +22 -0
- package/dist/market_adapter/test_helpers.js.map +1 -0
- package/dist/market_adapter/utils/adapter_client.d.ts +20 -0
- package/dist/market_adapter/utils/adapter_client.d.ts.map +1 -0
- package/dist/market_adapter/utils/adapter_client.js +88 -0
- package/dist/market_adapter/utils/adapter_client.js.map +1 -0
- package/dist/market_adapter/utils/atomic_write.d.ts +9 -0
- package/dist/market_adapter/utils/atomic_write.d.ts.map +1 -0
- package/dist/market_adapter/utils/atomic_write.js +13 -0
- package/dist/market_adapter/utils/atomic_write.js.map +1 -0
- package/dist/market_adapter/utils/chain.d.ts +50 -0
- package/dist/market_adapter/utils/chain.d.ts.map +1 -0
- package/dist/market_adapter/utils/chain.js +196 -0
- package/dist/market_adapter/utils/chain.js.map +1 -0
- package/dist/market_adapter/utils/data_discovery.d.ts +6 -0
- package/dist/market_adapter/utils/data_discovery.d.ts.map +1 -0
- package/dist/market_adapter/utils/data_discovery.js +35 -0
- package/dist/market_adapter/utils/data_discovery.js.map +1 -0
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts +15 -0
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts.map +1 -0
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js +60 -0
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js.map +1 -0
- package/dist/market_adapter/utils/file_lock.d.ts +19 -0
- package/dist/market_adapter/utils/file_lock.d.ts.map +1 -0
- package/dist/market_adapter/utils/file_lock.js +191 -0
- package/dist/market_adapter/utils/file_lock.js.map +1 -0
- package/dist/market_adapter/utils/native_history.d.ts +19 -0
- package/dist/market_adapter/utils/native_history.d.ts.map +1 -0
- package/dist/market_adapter/utils/native_history.js +172 -0
- package/dist/market_adapter/utils/native_history.js.map +1 -0
- package/dist/market_adapter/utils/paths.d.ts +5 -0
- package/dist/market_adapter/utils/paths.d.ts.map +1 -0
- package/dist/market_adapter/utils/paths.js +7 -0
- package/dist/market_adapter/utils/paths.js.map +1 -0
- package/dist/modules/account_bots.d.ts +112 -0
- package/dist/modules/account_bots.d.ts.map +1 -0
- package/dist/modules/account_bots.js +1259 -0
- package/dist/modules/account_bots.js.map +1 -0
- package/dist/modules/account_orders.d.ts +273 -0
- package/dist/modules/account_orders.d.ts.map +1 -0
- package/dist/modules/account_orders.js +662 -0
- package/dist/modules/account_orders.js.map +1 -0
- package/dist/modules/authority_resolver.d.ts +2 -0
- package/dist/modules/authority_resolver.d.ts.map +1 -0
- package/dist/modules/authority_resolver.js +231 -0
- package/dist/modules/authority_resolver.js.map +1 -0
- package/dist/modules/bitshares-native/chain_client.d.ts +38 -0
- package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -0
- package/dist/modules/bitshares-native/chain_client.js +322 -0
- package/dist/modules/bitshares-native/chain_client.js.map +1 -0
- package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts +59 -0
- package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts.map +1 -0
- package/dist/modules/bitshares-native/crypto/ecc.browser.js +456 -0
- package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -0
- package/dist/modules/bitshares-native/crypto/ecc.d.ts +66 -0
- package/dist/modules/bitshares-native/crypto/ecc.d.ts.map +1 -0
- package/dist/modules/bitshares-native/crypto/ecc.js +557 -0
- package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -0
- package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts +2 -0
- package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts.map +1 -0
- package/dist/modules/bitshares-native/crypto/ecc_selector.js +20 -0
- package/dist/modules/bitshares-native/crypto/ecc_selector.js.map +1 -0
- package/dist/modules/bitshares-native/index.d.ts +3 -0
- package/dist/modules/bitshares-native/index.d.ts.map +1 -0
- package/dist/modules/bitshares-native/index.js +32 -0
- package/dist/modules/bitshares-native/index.js.map +1 -0
- package/dist/modules/bitshares-native/resolvers.d.ts +40 -0
- package/dist/modules/bitshares-native/resolvers.d.ts.map +1 -0
- package/dist/modules/bitshares-native/resolvers.js +161 -0
- package/dist/modules/bitshares-native/resolvers.js.map +1 -0
- package/dist/modules/bitshares-native/serial/chain_constants.d.ts +56 -0
- package/dist/modules/bitshares-native/serial/chain_constants.d.ts.map +1 -0
- package/dist/modules/bitshares-native/serial/chain_constants.js +92 -0
- package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -0
- package/dist/modules/bitshares-native/serial/index.d.ts +10 -0
- package/dist/modules/bitshares-native/serial/index.d.ts.map +1 -0
- package/dist/modules/bitshares-native/serial/index.js +14 -0
- package/dist/modules/bitshares-native/serial/index.js.map +1 -0
- package/dist/modules/bitshares-native/serial/operations.d.ts +102 -0
- package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -0
- package/dist/modules/bitshares-native/serial/operations.js +615 -0
- package/dist/modules/bitshares-native/serial/operations.js.map +1 -0
- package/dist/modules/bitshares-native/serial/serializer.d.ts +64 -0
- package/dist/modules/bitshares-native/serial/serializer.d.ts.map +1 -0
- package/dist/modules/bitshares-native/serial/serializer.js +252 -0
- package/dist/modules/bitshares-native/serial/serializer.js.map +1 -0
- package/dist/modules/bitshares-native/serial/types.d.ts +120 -0
- package/dist/modules/bitshares-native/serial/types.d.ts.map +1 -0
- package/dist/modules/bitshares-native/serial/types.js +837 -0
- package/dist/modules/bitshares-native/serial/types.js.map +1 -0
- package/dist/modules/bitshares-native/signing_client.d.ts +6 -0
- package/dist/modules/bitshares-native/signing_client.d.ts.map +1 -0
- package/dist/modules/bitshares-native/signing_client.js +141 -0
- package/dist/modules/bitshares-native/signing_client.js.map +1 -0
- package/dist/modules/bitshares-native/subscriptions.d.ts +6 -0
- package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -0
- package/dist/modules/bitshares-native/subscriptions.js +865 -0
- package/dist/modules/bitshares-native/subscriptions.js.map +1 -0
- package/dist/modules/bitshares-native/transport.d.ts +51 -0
- package/dist/modules/bitshares-native/transport.d.ts.map +1 -0
- package/dist/modules/bitshares-native/transport.js +447 -0
- package/dist/modules/bitshares-native/transport.js.map +1 -0
- package/dist/modules/bitshares-native/tx/builder.d.ts +30 -0
- package/dist/modules/bitshares-native/tx/builder.d.ts.map +1 -0
- package/dist/modules/bitshares-native/tx/builder.js +262 -0
- package/dist/modules/bitshares-native/tx/builder.js.map +1 -0
- package/dist/modules/bitshares_client.d.ts +129 -0
- package/dist/modules/bitshares_client.d.ts.map +1 -0
- package/dist/modules/bitshares_client.js +627 -0
- package/dist/modules/bitshares_client.js.map +1 -0
- package/dist/modules/bot_settings.d.ts +33 -0
- package/dist/modules/bot_settings.d.ts.map +1 -0
- package/dist/modules/bot_settings.js +328 -0
- package/dist/modules/bot_settings.js.map +1 -0
- package/dist/modules/bots_file_lock.d.ts +88 -0
- package/dist/modules/bots_file_lock.d.ts.map +1 -0
- package/dist/modules/bots_file_lock.js +161 -0
- package/dist/modules/bots_file_lock.js.map +1 -0
- package/dist/modules/chain_keys.d.ts +302 -0
- package/dist/modules/chain_keys.d.ts.map +1 -0
- package/dist/modules/chain_keys.js +1095 -0
- package/dist/modules/chain_keys.js.map +1 -0
- package/dist/modules/chain_orders.d.ts +423 -0
- package/dist/modules/chain_orders.d.ts.map +1 -0
- package/dist/modules/chain_orders.js +1201 -0
- package/dist/modules/chain_orders.js.map +1 -0
- package/dist/modules/cli_whitelist_args.d.ts +6 -0
- package/dist/modules/cli_whitelist_args.d.ts.map +1 -0
- package/dist/modules/cli_whitelist_args.js +13 -0
- package/dist/modules/cli_whitelist_args.js.map +1 -0
- package/dist/modules/config.d.ts +57 -0
- package/dist/modules/config.d.ts.map +1 -0
- package/dist/modules/config.js +107 -0
- package/dist/modules/config.js.map +1 -0
- package/dist/modules/constants.d.ts +635 -0
- package/dist/modules/constants.d.ts.map +1 -0
- package/dist/modules/constants.js +1464 -0
- package/dist/modules/constants.js.map +1 -0
- package/dist/modules/cr_planner.d.ts +51 -0
- package/dist/modules/cr_planner.d.ts.map +1 -0
- package/dist/modules/cr_planner.js +299 -0
- package/dist/modules/cr_planner.js.map +1 -0
- package/dist/modules/credential_policy.d.ts +188 -0
- package/dist/modules/credential_policy.d.ts.map +1 -0
- package/dist/modules/credential_policy.js +1452 -0
- package/dist/modules/credential_policy.js.map +1 -0
- package/dist/modules/credential_runtime.d.ts +42 -0
- package/dist/modules/credential_runtime.d.ts.map +1 -0
- package/dist/modules/credential_runtime.js +148 -0
- package/dist/modules/credential_runtime.js.map +1 -0
- package/dist/modules/credential_session_cache.d.ts +36 -0
- package/dist/modules/credential_session_cache.d.ts.map +1 -0
- package/dist/modules/credential_session_cache.js +106 -0
- package/dist/modules/credential_session_cache.js.map +1 -0
- package/dist/modules/credit_runtime.d.ts +412 -0
- package/dist/modules/credit_runtime.d.ts.map +1 -0
- package/dist/modules/credit_runtime.js +2866 -0
- package/dist/modules/credit_runtime.js.map +1 -0
- package/dist/modules/crypto/browser_provider.d.ts +15 -0
- package/dist/modules/crypto/browser_provider.d.ts.map +1 -0
- package/dist/modules/crypto/browser_provider.js +113 -0
- package/dist/modules/crypto/browser_provider.js.map +1 -0
- package/dist/modules/crypto/index.d.ts +9 -0
- package/dist/modules/crypto/index.d.ts.map +1 -0
- package/dist/modules/crypto/index.js +44 -0
- package/dist/modules/crypto/index.js.map +1 -0
- package/dist/modules/crypto/node_provider.d.ts +15 -0
- package/dist/modules/crypto/node_provider.d.ts.map +1 -0
- package/dist/modules/crypto/node_provider.js +74 -0
- package/dist/modules/crypto/node_provider.js.map +1 -0
- package/dist/modules/crypto/provider.d.ts +34 -0
- package/dist/modules/crypto/provider.d.ts.map +1 -0
- package/dist/modules/crypto/provider.js +3 -0
- package/dist/modules/crypto/provider.js.map +1 -0
- package/dist/modules/crypto/pure_ripemd160.d.ts +8 -0
- package/dist/modules/crypto/pure_ripemd160.d.ts.map +1 -0
- package/dist/modules/crypto/pure_ripemd160.js +142 -0
- package/dist/modules/crypto/pure_ripemd160.js.map +1 -0
- package/dist/modules/crypto/pure_scrypt.d.ts +23 -0
- package/dist/modules/crypto/pure_scrypt.d.ts.map +1 -0
- package/dist/modules/crypto/pure_scrypt.js +161 -0
- package/dist/modules/crypto/pure_scrypt.js.map +1 -0
- package/dist/modules/crypto/pure_secp256k1.d.ts +29 -0
- package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -0
- package/dist/modules/crypto/pure_secp256k1.js +195 -0
- package/dist/modules/crypto/pure_secp256k1.js.map +1 -0
- package/dist/modules/crypto/sync.d.ts +13 -0
- package/dist/modules/crypto/sync.d.ts.map +1 -0
- package/dist/modules/crypto/sync.js +37 -0
- package/dist/modules/crypto/sync.js.map +1 -0
- package/dist/modules/dexbot_class.d.ts +1074 -0
- package/dist/modules/dexbot_class.d.ts.map +1 -0
- package/dist/modules/dexbot_class.js +4613 -0
- package/dist/modules/dexbot_class.js.map +1 -0
- package/dist/modules/dexbot_credential_client.d.ts +71 -0
- package/dist/modules/dexbot_credential_client.d.ts.map +1 -0
- package/dist/modules/dexbot_credential_client.js +224 -0
- package/dist/modules/dexbot_credential_client.js.map +1 -0
- package/dist/modules/dexbot_fill_runtime.d.ts +173 -0
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -0
- package/dist/modules/dexbot_fill_runtime.js +217 -0
- package/dist/modules/dexbot_fill_runtime.js.map +1 -0
- package/dist/modules/dexbot_maintenance_runtime.d.ts +279 -0
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -0
- package/dist/modules/dexbot_maintenance_runtime.js +1613 -0
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -0
- package/dist/modules/env.d.ts +12 -0
- package/dist/modules/env.d.ts.map +1 -0
- package/dist/modules/env.js +57 -0
- package/dist/modules/env.js.map +1 -0
- package/dist/modules/fund_registry.d.ts +96 -0
- package/dist/modules/fund_registry.d.ts.map +1 -0
- package/dist/modules/fund_registry.js +261 -0
- package/dist/modules/fund_registry.js.map +1 -0
- package/dist/modules/general_settings.d.ts +36 -0
- package/dist/modules/general_settings.d.ts.map +1 -0
- package/dist/modules/general_settings.js +63 -0
- package/dist/modules/general_settings.js.map +1 -0
- package/dist/modules/graceful_shutdown.d.ts +86 -0
- package/dist/modules/graceful_shutdown.d.ts.map +1 -0
- package/dist/modules/graceful_shutdown.js +164 -0
- package/dist/modules/graceful_shutdown.js.map +1 -0
- package/dist/modules/key_store.d.ts +60 -0
- package/dist/modules/key_store.d.ts.map +1 -0
- package/dist/modules/key_store.js +215 -0
- package/dist/modules/key_store.js.map +1 -0
- package/dist/modules/launcher/bot_supervisor.d.ts +84 -0
- package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -0
- package/dist/modules/launcher/bot_supervisor.js +1067 -0
- package/dist/modules/launcher/bot_supervisor.js.map +1 -0
- package/dist/modules/launcher/child_env.d.ts +9 -0
- package/dist/modules/launcher/child_env.d.ts.map +1 -0
- package/dist/modules/launcher/child_env.js +78 -0
- package/dist/modules/launcher/child_env.js.map +1 -0
- package/dist/modules/launcher/credential_bootstrap.d.ts +22 -0
- package/dist/modules/launcher/credential_bootstrap.d.ts.map +1 -0
- package/dist/modules/launcher/credential_bootstrap.js +303 -0
- package/dist/modules/launcher/credential_bootstrap.js.map +1 -0
- package/dist/modules/launcher/credential_daemon.d.ts +32 -0
- package/dist/modules/launcher/credential_daemon.d.ts.map +1 -0
- package/dist/modules/launcher/credential_daemon.js +173 -0
- package/dist/modules/launcher/credential_daemon.js.map +1 -0
- package/dist/modules/launcher/credential_secret.d.ts +6 -0
- package/dist/modules/launcher/credential_secret.d.ts.map +1 -0
- package/dist/modules/launcher/credential_secret.js +15 -0
- package/dist/modules/launcher/credential_secret.js.map +1 -0
- package/dist/modules/launcher/foreign_cred_daemon.d.ts +2 -0
- package/dist/modules/launcher/foreign_cred_daemon.d.ts.map +1 -0
- package/dist/modules/launcher/foreign_cred_daemon.js +166 -0
- package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -0
- package/dist/modules/launcher/headless_password.d.ts +8 -0
- package/dist/modules/launcher/headless_password.d.ts.map +1 -0
- package/dist/modules/launcher/headless_password.js +33 -0
- package/dist/modules/launcher/headless_password.js.map +1 -0
- package/dist/modules/launcher/launch_modes.d.ts +36 -0
- package/dist/modules/launcher/launch_modes.d.ts.map +1 -0
- package/dist/modules/launcher/launch_modes.js +129 -0
- package/dist/modules/launcher/launch_modes.js.map +1 -0
- package/dist/modules/launcher/market_adapter_runtime.d.ts +43 -0
- package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -0
- package/dist/modules/launcher/market_adapter_runtime.js +217 -0
- package/dist/modules/launcher/market_adapter_runtime.js.map +1 -0
- package/dist/modules/launcher/market_adapter_watchdog.d.ts +26 -0
- package/dist/modules/launcher/market_adapter_watchdog.d.ts.map +1 -0
- package/dist/modules/launcher/market_adapter_watchdog.js +214 -0
- package/dist/modules/launcher/market_adapter_watchdog.js.map +1 -0
- package/dist/modules/launcher/monolithic_runtime.d.ts +89 -0
- package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -0
- package/dist/modules/launcher/monolithic_runtime.js +425 -0
- package/dist/modules/launcher/monolithic_runtime.js.map +1 -0
- package/dist/modules/launcher/runtime_entry.d.ts +26 -0
- package/dist/modules/launcher/runtime_entry.d.ts.map +1 -0
- package/dist/modules/launcher/runtime_entry.js +49 -0
- package/dist/modules/launcher/runtime_entry.js.map +1 -0
- package/dist/modules/launcher/status_reporting.d.ts +48 -0
- package/dist/modules/launcher/status_reporting.d.ts.map +1 -0
- package/dist/modules/launcher/status_reporting.js +113 -0
- package/dist/modules/launcher/status_reporting.js.map +1 -0
- package/dist/modules/launcher/supervisor_control.d.ts +6 -0
- package/dist/modules/launcher/supervisor_control.d.ts.map +1 -0
- package/dist/modules/launcher/supervisor_control.js +59 -0
- package/dist/modules/launcher/supervisor_control.js.map +1 -0
- package/dist/modules/logger.d.ts +2 -0
- package/dist/modules/logger.d.ts.map +1 -0
- package/dist/modules/logger.js +71 -0
- package/dist/modules/logger.js.map +1 -0
- package/dist/modules/market_adapter_whitelist.d.ts +22 -0
- package/dist/modules/market_adapter_whitelist.d.ts.map +1 -0
- package/dist/modules/market_adapter_whitelist.js +82 -0
- package/dist/modules/market_adapter_whitelist.js.map +1 -0
- package/dist/modules/node_health_cache.d.ts +55 -0
- package/dist/modules/node_health_cache.d.ts.map +1 -0
- package/dist/modules/node_health_cache.js +134 -0
- package/dist/modules/node_health_cache.js.map +1 -0
- package/dist/modules/node_manager.d.ts +215 -0
- package/dist/modules/node_manager.d.ts.map +1 -0
- package/dist/modules/node_manager.js +628 -0
- package/dist/modules/node_manager.js.map +1 -0
- package/dist/modules/order/accounting.d.ts +349 -0
- package/dist/modules/order/accounting.d.ts.map +1 -0
- package/dist/modules/order/accounting.js +1191 -0
- package/dist/modules/order/accounting.js.map +1 -0
- package/dist/modules/order/async_lock.d.ts +126 -0
- package/dist/modules/order/async_lock.d.ts.map +1 -0
- package/dist/modules/order/async_lock.js +195 -0
- package/dist/modules/order/async_lock.js.map +1 -0
- package/dist/modules/order/export.d.ts +129 -0
- package/dist/modules/order/export.d.ts.map +1 -0
- package/dist/modules/order/export.js +316 -0
- package/dist/modules/order/export.js.map +1 -0
- package/dist/modules/order/format.d.ts +158 -0
- package/dist/modules/order/format.d.ts.map +1 -0
- package/dist/modules/order/format.js +232 -0
- package/dist/modules/order/format.js.map +1 -0
- package/dist/modules/order/grid.d.ts +549 -0
- package/dist/modules/order/grid.d.ts.map +1 -0
- package/dist/modules/order/grid.js +1746 -0
- package/dist/modules/order/grid.js.map +1 -0
- package/dist/modules/order/grid_reconcile.d.ts +154 -0
- package/dist/modules/order/grid_reconcile.d.ts.map +1 -0
- package/dist/modules/order/grid_reconcile.js +1192 -0
- package/dist/modules/order/grid_reconcile.js.map +1 -0
- package/dist/modules/order/index.d.ts +55 -0
- package/dist/modules/order/index.d.ts.map +1 -0
- package/dist/modules/order/index.js +79 -0
- package/dist/modules/order/index.js.map +1 -0
- package/dist/modules/order/logger.d.ts +136 -0
- package/dist/modules/order/logger.d.ts.map +1 -0
- package/dist/modules/order/logger.js +614 -0
- package/dist/modules/order/logger.js.map +1 -0
- package/dist/modules/order/logger_state.d.ts +133 -0
- package/dist/modules/order/logger_state.d.ts.map +1 -0
- package/dist/modules/order/logger_state.js +170 -0
- package/dist/modules/order/logger_state.js.map +1 -0
- package/dist/modules/order/manager.d.ts +413 -0
- package/dist/modules/order/manager.d.ts.map +1 -0
- package/dist/modules/order/manager.js +1605 -0
- package/dist/modules/order/manager.js.map +1 -0
- package/dist/modules/order/processed_fill_store.d.ts +135 -0
- package/dist/modules/order/processed_fill_store.d.ts.map +1 -0
- package/dist/modules/order/processed_fill_store.js +288 -0
- package/dist/modules/order/processed_fill_store.js.map +1 -0
- package/dist/modules/order/runner.d.ts +70 -0
- package/dist/modules/order/runner.d.ts.map +1 -0
- package/dist/modules/order/runner.js +140 -0
- package/dist/modules/order/runner.js.map +1 -0
- package/dist/modules/order/strategy.d.ts +196 -0
- package/dist/modules/order/strategy.d.ts.map +1 -0
- package/dist/modules/order/strategy.js +398 -0
- package/dist/modules/order/strategy.js.map +1 -0
- package/dist/modules/order/sync_engine.d.ts +386 -0
- package/dist/modules/order/sync_engine.d.ts.map +1 -0
- package/dist/modules/order/sync_engine.js +1459 -0
- package/dist/modules/order/sync_engine.js.map +1 -0
- package/dist/modules/order/utils/math.d.ts +677 -0
- package/dist/modules/order/utils/math.d.ts.map +1 -0
- package/dist/modules/order/utils/math.js +1172 -0
- package/dist/modules/order/utils/math.js.map +1 -0
- package/dist/modules/order/utils/order.d.ts +572 -0
- package/dist/modules/order/utils/order.d.ts.map +1 -0
- package/dist/modules/order/utils/order.js +1145 -0
- package/dist/modules/order/utils/order.js.map +1 -0
- package/dist/modules/order/utils/system.d.ts +268 -0
- package/dist/modules/order/utils/system.d.ts.map +1 -0
- package/dist/modules/order/utils/system.js +1261 -0
- package/dist/modules/order/utils/system.js.map +1 -0
- package/dist/modules/order/utils/validate.d.ts +280 -0
- package/dist/modules/order/utils/validate.d.ts.map +1 -0
- package/dist/modules/order/utils/validate.js +918 -0
- package/dist/modules/order/utils/validate.js.map +1 -0
- package/dist/modules/order/working_grid.d.ts +212 -0
- package/dist/modules/order/working_grid.d.ts.map +1 -0
- package/dist/modules/order/working_grid.js +279 -0
- package/dist/modules/order/working_grid.js.map +1 -0
- package/dist/modules/path_api.d.ts +32 -0
- package/dist/modules/path_api.d.ts.map +1 -0
- package/dist/modules/path_api.js +148 -0
- package/dist/modules/path_api.js.map +1 -0
- package/dist/modules/paths.d.ts +58 -0
- package/dist/modules/paths.d.ts.map +1 -0
- package/dist/modules/paths.js +82 -0
- package/dist/modules/paths.js.map +1 -0
- package/dist/modules/process_discovery.d.ts +58 -0
- package/dist/modules/process_discovery.d.ts.map +1 -0
- package/dist/modules/process_discovery.js +265 -0
- package/dist/modules/process_discovery.js.map +1 -0
- package/dist/modules/runtime.d.ts +34 -0
- package/dist/modules/runtime.d.ts.map +1 -0
- package/dist/modules/runtime.js +98 -0
- package/dist/modules/runtime.js.map +1 -0
- package/dist/modules/runtime_settings.d.ts +12 -0
- package/dist/modules/runtime_settings.d.ts.map +1 -0
- package/dist/modules/runtime_settings.js +122 -0
- package/dist/modules/runtime_settings.js.map +1 -0
- package/dist/modules/settings_merge.d.ts +38 -0
- package/dist/modules/settings_merge.d.ts.map +1 -0
- package/dist/modules/settings_merge.js +246 -0
- package/dist/modules/settings_merge.js.map +1 -0
- package/dist/modules/storage/browser_adapter.d.ts +56 -0
- package/dist/modules/storage/browser_adapter.d.ts.map +1 -0
- package/dist/modules/storage/browser_adapter.js +231 -0
- package/dist/modules/storage/browser_adapter.js.map +1 -0
- package/dist/modules/storage/index.d.ts +28 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +52 -0
- package/dist/modules/storage/index.js.map +1 -0
- package/dist/modules/storage/node_adapter.d.ts +49 -0
- package/dist/modules/storage/node_adapter.d.ts.map +1 -0
- package/dist/modules/storage/node_adapter.js +167 -0
- package/dist/modules/storage/node_adapter.js.map +1 -0
- package/dist/modules/storage/types.d.ts +92 -0
- package/dist/modules/storage/types.d.ts.map +1 -0
- package/dist/modules/storage/types.js +3 -0
- package/dist/modules/storage/types.js.map +1 -0
- package/dist/modules/types.d.ts +1382 -0
- package/dist/modules/types.d.ts.map +1 -0
- package/dist/modules/types.js +11 -0
- package/dist/modules/types.js.map +1 -0
- package/dist/modules/utils/base58check.d.ts +12 -0
- package/dist/modules/utils/base58check.d.ts.map +1 -0
- package/dist/modules/utils/base58check.js +112 -0
- package/dist/modules/utils/base58check.js.map +1 -0
- package/dist/modules/utils/build_dir.d.ts +7 -0
- package/dist/modules/utils/build_dir.d.ts.map +1 -0
- package/dist/modules/utils/build_dir.js +8 -0
- package/dist/modules/utils/build_dir.js.map +1 -0
- package/dist/modules/utils/fs_utils.d.ts +25 -0
- package/dist/modules/utils/fs_utils.d.ts.map +1 -0
- package/dist/modules/utils/fs_utils.js +27 -0
- package/dist/modules/utils/fs_utils.js.map +1 -0
- package/dist/modules/utils/math_utils.d.ts +10 -0
- package/dist/modules/utils/math_utils.d.ts.map +1 -0
- package/dist/modules/utils/math_utils.js +17 -0
- package/dist/modules/utils/math_utils.js.map +1 -0
- package/dist/modules/validate_profiles.d.ts +37 -0
- package/dist/modules/validate_profiles.d.ts.map +1 -0
- package/dist/modules/validate_profiles.js +369 -0
- package/dist/modules/validate_profiles.js.map +1 -0
- package/dist/pm2.d.ts +167 -0
- package/dist/pm2.d.ts.map +1 -0
- package/dist/pm2.js +998 -0
- package/dist/pm2.js.map +1 -0
- package/dist/scripts/analyze-git.d.ts +11 -0
- package/dist/scripts/analyze-git.d.ts.map +1 -0
- package/dist/scripts/analyze-git.js +851 -0
- package/dist/scripts/analyze-git.js.map +1 -0
- package/dist/scripts/analyze-orders.d.ts +17 -0
- package/dist/scripts/analyze-orders.d.ts.map +1 -0
- package/dist/scripts/analyze-orders.js +1568 -0
- package/dist/scripts/analyze-orders.js.map +1 -0
- package/dist/scripts/diagnose-kibana-candles.d.ts +3 -0
- package/dist/scripts/diagnose-kibana-candles.d.ts.map +1 -0
- package/dist/scripts/diagnose-kibana-candles.js +82 -0
- package/dist/scripts/diagnose-kibana-candles.js.map +1 -0
- package/dist/scripts/diagnose-pool-history.d.ts +3 -0
- package/dist/scripts/diagnose-pool-history.d.ts.map +1 -0
- package/dist/scripts/diagnose-pool-history.js +296 -0
- package/dist/scripts/diagnose-pool-history.js.map +1 -0
- package/dist/scripts/divergence-calc.d.ts +26 -0
- package/dist/scripts/divergence-calc.d.ts.map +1 -0
- package/dist/scripts/divergence-calc.js +119 -0
- package/dist/scripts/divergence-calc.js.map +1 -0
- package/dist/scripts/generate_lp_chart.d.ts +31 -0
- package/dist/scripts/generate_lp_chart.d.ts.map +1 -0
- package/dist/scripts/generate_lp_chart.js +92 -0
- package/dist/scripts/generate_lp_chart.js.map +1 -0
- package/dist/scripts/generate_mainnet_corpus_report.d.ts +24 -0
- package/dist/scripts/generate_mainnet_corpus_report.d.ts.map +1 -0
- package/dist/scripts/generate_mainnet_corpus_report.js +237 -0
- package/dist/scripts/generate_mainnet_corpus_report.js.map +1 -0
- package/dist/scripts/generate_market_adapter_whitelist.d.ts +2 -0
- package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -0
- package/dist/scripts/generate_market_adapter_whitelist.js +111 -0
- package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -0
- package/dist/scripts/migrate_bot_keys.d.ts +6 -0
- package/dist/scripts/migrate_bot_keys.d.ts.map +1 -0
- package/dist/scripts/migrate_bot_keys.js +301 -0
- package/dist/scripts/migrate_bot_keys.js.map +1 -0
- package/dist/scripts/native_release_gates.d.ts +3 -0
- package/dist/scripts/native_release_gates.d.ts.map +1 -0
- package/dist/scripts/native_release_gates.js +52 -0
- package/dist/scripts/native_release_gates.js.map +1 -0
- package/dist/scripts/print_grid.d.ts +16 -0
- package/dist/scripts/print_grid.d.ts.map +1 -0
- package/dist/scripts/print_grid.js +80 -0
- package/dist/scripts/print_grid.js.map +1 -0
- package/dist/scripts/run-tests.d.ts +2 -0
- package/dist/scripts/run-tests.d.ts.map +1 -0
- package/dist/scripts/run-tests.js +49 -0
- package/dist/scripts/run-tests.js.map +1 -0
- package/dist/scripts/sync-version.d.ts +14 -0
- package/dist/scripts/sync-version.d.ts.map +1 -0
- package/dist/scripts/sync-version.js +158 -0
- package/dist/scripts/sync-version.js.map +1 -0
- package/dist/scripts/test-credit-renewal.d.ts +2 -0
- package/dist/scripts/test-credit-renewal.d.ts.map +1 -0
- package/dist/scripts/test-credit-renewal.js +329 -0
- package/dist/scripts/test-credit-renewal.js.map +1 -0
- package/dist/scripts/update.d.ts +24 -0
- package/dist/scripts/update.d.ts.map +1 -0
- package/dist/scripts/update.js +650 -0
- package/dist/scripts/update.js.map +1 -0
- package/dist/scripts/validate_bots.d.ts +16 -0
- package/dist/scripts/validate_bots.d.ts.map +1 -0
- package/dist/scripts/validate_bots.js +106 -0
- package/dist/scripts/validate_bots.js.map +1 -0
- package/dist/scripts/verify-browser-bundle.d.ts +22 -0
- package/dist/scripts/verify-browser-bundle.d.ts.map +1 -0
- package/dist/scripts/verify-browser-bundle.js +339 -0
- package/dist/scripts/verify-browser-bundle.js.map +1 -0
- package/dist/unlock.d.ts +48 -0
- package/dist/unlock.d.ts.map +1 -0
- package/dist/unlock.js +925 -0
- package/dist/unlock.js.map +1 -0
- package/package.json +112 -0
- package/scripts/README.md +356 -0
- package/scripts/clear-all.sh +195 -0
- package/scripts/clear-logs.sh +95 -0
- package/scripts/clear-market-adapter.sh +196 -0
- package/scripts/clear-orders.sh +113 -0
- package/scripts/create-bot-symlinks.sh +51 -0
- package/scripts/postinstall.js +9 -0
- package/scripts/reset-settings.sh +118 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Credential client module - connects to credential daemon for key operations */
|
|
3
|
+
const { getNodeRequire } = require('./env');
|
|
4
|
+
const _require = getNodeRequire();
|
|
5
|
+
let net;
|
|
6
|
+
try {
|
|
7
|
+
net = _require ? _require('net') : undefined;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
// Browser: Unix socket IPC unavailable; methods will throw when called
|
|
11
|
+
}
|
|
12
|
+
const { getStorage } = require('./storage');
|
|
13
|
+
const storage = getStorage();
|
|
14
|
+
const { createHmac } = require('./crypto/sync');
|
|
15
|
+
const { TIMING, DAEMON_CODES } = require('./constants');
|
|
16
|
+
const { getCredentialReadyFilePath, getCredentialSocketPath, isPrivatePathSecure, } = require('./credential_runtime');
|
|
17
|
+
const DEFAULT_SOCKET_PATH = getCredentialSocketPath();
|
|
18
|
+
const DEFAULT_READY_FILE = getCredentialReadyFilePath();
|
|
19
|
+
const DEFAULT_REQUEST_TIMEOUT_MS = 5000;
|
|
20
|
+
const DEFAULT_BROADCAST_TIMEOUT_MS = TIMING.CREDENTIAL_BROADCAST_TIMEOUT_MS;
|
|
21
|
+
const DEFAULT_WAIT_TIMEOUT_MS = TIMING.DAEMON_STARTUP_TIMEOUT_MS;
|
|
22
|
+
const DEFAULT_POLL_INTERVAL_MS = TIMING.CHECK_INTERVAL_MS;
|
|
23
|
+
/**
|
|
24
|
+
* Typed error raised when the bot-side socket timer fires BEFORE the credential
|
|
25
|
+
* daemon has responded. The chain status of the operations is unknown at this
|
|
26
|
+
* point — the daemon may have signed and broadcast, or it may have stalled
|
|
27
|
+
* before doing anything. Callers (chain_orders.ts / dexbot_class.ts) MUST catch
|
|
28
|
+
* this and run the recovery path (read chain, match by fingerprint, adopt or
|
|
29
|
+
* discard). A plain `Error` would lose the metadata the recovery path needs.
|
|
30
|
+
*
|
|
31
|
+
* Fields:
|
|
32
|
+
* - operations: the original op array sent to the daemon
|
|
33
|
+
* - accountName: account the ops were intended for
|
|
34
|
+
* - batchId: caller-provided correlation id (if any)
|
|
35
|
+
* - payload: the full request payload (for retry/log)
|
|
36
|
+
* - timeoutMs: the outer timeout that fired
|
|
37
|
+
*/
|
|
38
|
+
class BroadcastUncertainError extends Error {
|
|
39
|
+
code;
|
|
40
|
+
operations;
|
|
41
|
+
accountName;
|
|
42
|
+
batchId;
|
|
43
|
+
payload;
|
|
44
|
+
timeoutMs;
|
|
45
|
+
constructor(message, details = {}) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.name = 'BroadcastUncertainError';
|
|
48
|
+
this.code = 'BROADCAST_UNCERTAIN';
|
|
49
|
+
this.operations = details.operations || null;
|
|
50
|
+
this.accountName = details.accountName || null;
|
|
51
|
+
this.batchId = details.batchId || null;
|
|
52
|
+
this.payload = details.payload || null;
|
|
53
|
+
this.timeoutMs = details.timeoutMs || null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function getSocketPath(options = {}) {
|
|
57
|
+
return options.socketPath || DEFAULT_SOCKET_PATH;
|
|
58
|
+
}
|
|
59
|
+
function sendCredentialDaemonRequest(socketPath, payload, timeoutMs, meta = {}) {
|
|
60
|
+
return new Promise((resolve, reject) => {
|
|
61
|
+
let settled = false;
|
|
62
|
+
const socket = net.createConnection(socketPath, () => {
|
|
63
|
+
socket.write(`${JSON.stringify(payload)}\n`);
|
|
64
|
+
});
|
|
65
|
+
let responseBuffer = '';
|
|
66
|
+
const timer = setTimeout(() => {
|
|
67
|
+
socket.destroy();
|
|
68
|
+
if (!settled) {
|
|
69
|
+
settled = true;
|
|
70
|
+
// For broadcast requests the chain may have already accepted the
|
|
71
|
+
// operations by the time we time out. Use a typed error so the
|
|
72
|
+
// recovery path can detect this case explicitly. Non-broadcast
|
|
73
|
+
// requests stay on the plain Error path.
|
|
74
|
+
if (meta && meta.uncertainOnTimeout) {
|
|
75
|
+
reject(new BroadcastUncertainError(`Credential daemon broadcast request timed out after ${timeoutMs}ms`, {
|
|
76
|
+
operations: meta.operations || null,
|
|
77
|
+
accountName: meta.accountName || null,
|
|
78
|
+
batchId: meta.batchId || null,
|
|
79
|
+
payload,
|
|
80
|
+
timeoutMs,
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
reject(new Error(`Credential daemon request timed out after ${timeoutMs}ms`));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, timeoutMs);
|
|
88
|
+
socket.on('data', (data) => {
|
|
89
|
+
responseBuffer += data.toString();
|
|
90
|
+
const lines = responseBuffer.split('\n');
|
|
91
|
+
responseBuffer = lines.pop();
|
|
92
|
+
for (const line of lines) {
|
|
93
|
+
if (!line.trim())
|
|
94
|
+
continue;
|
|
95
|
+
clearTimeout(timer);
|
|
96
|
+
socket.end();
|
|
97
|
+
if (!settled) {
|
|
98
|
+
settled = true;
|
|
99
|
+
try {
|
|
100
|
+
resolve(JSON.parse(line));
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
reject(new Error('Invalid credential daemon response'));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
socket.on('error', (error) => {
|
|
110
|
+
clearTimeout(timer);
|
|
111
|
+
if (!settled) {
|
|
112
|
+
settled = true;
|
|
113
|
+
reject(new Error(`Credential daemon connection failed: ${error.message}`));
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
socket.on('end', () => {
|
|
117
|
+
clearTimeout(timer);
|
|
118
|
+
if (!settled && !responseBuffer.trim()) {
|
|
119
|
+
settled = true;
|
|
120
|
+
reject(new Error('Credential daemon closed the connection unexpectedly'));
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
function getReadyFilePath(options = {}) {
|
|
126
|
+
return options.readyFilePath || DEFAULT_READY_FILE;
|
|
127
|
+
}
|
|
128
|
+
function isCredentialDaemonReady(options = {}) {
|
|
129
|
+
try {
|
|
130
|
+
const readyFilePath = getReadyFilePath(options);
|
|
131
|
+
const socketPath = getSocketPath(options);
|
|
132
|
+
return storage.exists(readyFilePath) &&
|
|
133
|
+
storage.exists(socketPath) &&
|
|
134
|
+
isPrivatePathSecure(readyFilePath, { expectedType: 'file', requiredMode: 0o600 }) &&
|
|
135
|
+
isPrivatePathSecure(socketPath, { expectedType: 'socket', requiredMode: 0o600 });
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async function waitForCredentialDaemon(timeoutMs = DEFAULT_WAIT_TIMEOUT_MS, options = {}) {
|
|
142
|
+
const pollIntervalMs = Number.isFinite(Number(options.pollIntervalMs))
|
|
143
|
+
? Number(options.pollIntervalMs)
|
|
144
|
+
: DEFAULT_POLL_INTERVAL_MS;
|
|
145
|
+
const start = Date.now();
|
|
146
|
+
while (!isCredentialDaemonReady(options)) {
|
|
147
|
+
if (Date.now() - start > timeoutMs) {
|
|
148
|
+
throw new Error(`Timed out waiting for DEXBot2 credential daemon after ${timeoutMs}ms`);
|
|
149
|
+
}
|
|
150
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function executeOperationsViaCredentialDaemon(accountName, operations, options = {}) {
|
|
154
|
+
if (!accountName) {
|
|
155
|
+
return Promise.reject(new Error('accountName is required to execute operations'));
|
|
156
|
+
}
|
|
157
|
+
if (!Array.isArray(operations)) {
|
|
158
|
+
return Promise.reject(new Error('operations must be an array'));
|
|
159
|
+
}
|
|
160
|
+
const socketPath = getSocketPath(options);
|
|
161
|
+
// Broadcast requests have their own (longer) outer timeout. Non-broadcast
|
|
162
|
+
// callers can still pass timeoutMs explicitly to override.
|
|
163
|
+
const isBroadcast = options.requestType === 'broadcast' || options.isBroadcast === true;
|
|
164
|
+
const defaultTimeout = isBroadcast ? DEFAULT_BROADCAST_TIMEOUT_MS : DEFAULT_REQUEST_TIMEOUT_MS;
|
|
165
|
+
const timeoutMs = Number.isFinite(Number(options.timeoutMs))
|
|
166
|
+
? Number(options.timeoutMs)
|
|
167
|
+
: defaultTimeout;
|
|
168
|
+
const payload = { type: 'execute-operations', accountName, operations };
|
|
169
|
+
const sessionId = options.sessionId || null;
|
|
170
|
+
if (sessionId)
|
|
171
|
+
payload.sessionId = sessionId;
|
|
172
|
+
const botHmacSecret = options.botHmacSecret || null;
|
|
173
|
+
if (botHmacSecret && sessionId) {
|
|
174
|
+
payload.hmac = createHmac('sha256', Buffer.from(botHmacSecret, 'hex'))
|
|
175
|
+
.update(JSON.stringify({ sessionId, operations }))
|
|
176
|
+
.digest('hex');
|
|
177
|
+
}
|
|
178
|
+
const meta = isBroadcast
|
|
179
|
+
? {
|
|
180
|
+
uncertainOnTimeout: true,
|
|
181
|
+
operations,
|
|
182
|
+
accountName,
|
|
183
|
+
batchId: options.batchId || null,
|
|
184
|
+
}
|
|
185
|
+
: {};
|
|
186
|
+
return sendCredentialDaemonRequest(socketPath, payload, timeoutMs, meta).then((response) => {
|
|
187
|
+
if (response.success) {
|
|
188
|
+
return response;
|
|
189
|
+
}
|
|
190
|
+
const errMsg = response.error || 'Unknown credential daemon error';
|
|
191
|
+
const errCode = response.code || null;
|
|
192
|
+
// The daemon hit its inner deadline (BROADCAST_DEADLINE) and the chain
|
|
193
|
+
// state is uncertain. Convert this typed failure back to a
|
|
194
|
+
// BroadcastUncertainError so the recovery path picks it up. Only
|
|
195
|
+
// relevant for broadcast requests — non-broadcast callers don't carry
|
|
196
|
+
// the uncertainOnTimeout flag.
|
|
197
|
+
if (isBroadcast &&
|
|
198
|
+
(errCode === DAEMON_CODES.BROADCAST_DEADLINE ||
|
|
199
|
+
(typeof errMsg === 'string' && errMsg.startsWith(DAEMON_CODES.BROADCAST_DEADLINE)))) {
|
|
200
|
+
throw new BroadcastUncertainError(`Credential daemon broadcast uncertain: ${errCode || errMsg}`, {
|
|
201
|
+
operations,
|
|
202
|
+
accountName,
|
|
203
|
+
batchId: options.batchId || null,
|
|
204
|
+
payload,
|
|
205
|
+
timeoutMs,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// Typed failure reply from the daemon (e.g. policy denied, bad op) —
|
|
209
|
+
// the chain state is known (chain NOT touched), so a plain Error is
|
|
210
|
+
// fine.
|
|
211
|
+
throw new Error(errMsg);
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
module.exports = {
|
|
215
|
+
DEFAULT_READY_FILE,
|
|
216
|
+
DEFAULT_SOCKET_PATH,
|
|
217
|
+
DEFAULT_BROADCAST_TIMEOUT_MS,
|
|
218
|
+
sendCredentialDaemonRequest,
|
|
219
|
+
executeOperationsViaCredentialDaemon,
|
|
220
|
+
isCredentialDaemonReady,
|
|
221
|
+
waitForCredentialDaemon,
|
|
222
|
+
BroadcastUncertainError,
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=dexbot_credential_client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dexbot_credential_client.js","sourceRoot":"","sources":["../../modules/dexbot_credential_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire processed fill tracking into the manager and processed fill store.
|
|
3
|
+
* Establishes the bidirectional link between the runtime's processed fill store
|
|
4
|
+
* and the OrderManager's processed fill tracker.
|
|
5
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
6
|
+
*/
|
|
7
|
+
declare function wireProcessedFillTracking(bot: any): void;
|
|
8
|
+
/**
|
|
9
|
+
* Flush all pending processed fill writes to persistent storage.
|
|
10
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
11
|
+
* @param {string} [reason='manual'] - Reason label for the flush
|
|
12
|
+
* @param {Object} [options] - Flush options forwarded to ProcessedFillStore.flush
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
declare function flushProcessedFillPersistence(bot: any, reason?: string, options?: {}): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Flush pending processed fill writes for specific fill keys.
|
|
18
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
19
|
+
* @param {string[]|Set<string>} fillKeys - Fill keys to flush
|
|
20
|
+
* @param {string} [reason='manual-selected'] - Reason label for the flush
|
|
21
|
+
* @param {Object} [options] - Flush options forwarded to ProcessedFillStore.flushKeys
|
|
22
|
+
* @returns {Promise<void>}
|
|
23
|
+
*/
|
|
24
|
+
declare function flushProcessedFillPersistenceForKeys(bot: any, fillKeys: any, reason?: string, options?: {}): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Discard pending processed fill writes for specific fill keys from the queue.
|
|
27
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
28
|
+
* @param {string[]|Set<string>} fillKeys - Fill keys to discard
|
|
29
|
+
*/
|
|
30
|
+
declare function discardPendingProcessedFillPersistence(bot: any, fillKeys: any): void;
|
|
31
|
+
/**
|
|
32
|
+
* Build a degraded orphan fill replay key when the standard fill history id is missing.
|
|
33
|
+
* The fallback key is derived from order_id, block_num, pays/receives amounts and asset IDs.
|
|
34
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
35
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
36
|
+
* @returns {string|null} Orphan fallback key or null if insufficient data
|
|
37
|
+
*/
|
|
38
|
+
declare function buildOrphanFillFallbackKey(bot: any, fill: any): string;
|
|
39
|
+
/**
|
|
40
|
+
* Apply fill accounting with replay-safe deduplication.
|
|
41
|
+
* Prevents the same fill from being accounted twice across restarts or re-syncs.
|
|
42
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
43
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
44
|
+
* @param {import('./types').FillOperationData} fillOp - Extracted fill operation data
|
|
45
|
+
* @param {Object} [options] - Options
|
|
46
|
+
* @param {Function} [options.missingKeyMessage] - Callback to generate log message when fill key is missing
|
|
47
|
+
* @param {Function} [options.fallbackKeyMessage] - Callback to generate log message when fallback key is used
|
|
48
|
+
* @param {Function} [options.replayMessage] - Callback to generate log message on duplicate fill
|
|
49
|
+
* @param {Function} [options.errorMessage] - Callback to generate log message on error
|
|
50
|
+
* @param {Object} [options.logger] - Logger instance
|
|
51
|
+
* @param {string} [options.missingKeyLevel='warn'] - Log level for missing key messages
|
|
52
|
+
* @param {string} [options.fallbackKeyLevel='warn'] - Log level for fallback key messages
|
|
53
|
+
* @param {string} [options.replayLevel='debug'] - Log level for replay messages
|
|
54
|
+
* @param {string} [options.persistenceMode='immediate'] - Processed fill persistence mode
|
|
55
|
+
* @param {boolean} [options.allowOrphanFallbackKey=false] - Allow degraded orphan fallback key
|
|
56
|
+
* @returns {Promise<import('./types').ReplaySafeFillResult>}
|
|
57
|
+
*/
|
|
58
|
+
declare function applyReplaySafeFillAccounting(bot: any, fill: any, fillOp: any, { missingKeyMessage, fallbackKeyMessage, replayMessage, errorMessage, logger, missingKeyLevel, fallbackKeyLevel, replayLevel, persistenceMode, allowOrphanFallbackKey }?: {
|
|
59
|
+
missingKeyMessage?: any;
|
|
60
|
+
fallbackKeyMessage?: any;
|
|
61
|
+
replayMessage?: any;
|
|
62
|
+
errorMessage?: any;
|
|
63
|
+
logger?: any;
|
|
64
|
+
missingKeyLevel?: string;
|
|
65
|
+
fallbackKeyLevel?: string;
|
|
66
|
+
replayLevel?: string;
|
|
67
|
+
persistenceMode?: any;
|
|
68
|
+
allowOrphanFallbackKey?: boolean;
|
|
69
|
+
}): Promise<{
|
|
70
|
+
status: string;
|
|
71
|
+
fillKey: any;
|
|
72
|
+
usedFallbackKey?: undefined;
|
|
73
|
+
error?: undefined;
|
|
74
|
+
} | {
|
|
75
|
+
status: string;
|
|
76
|
+
fillKey: any;
|
|
77
|
+
usedFallbackKey: boolean;
|
|
78
|
+
error?: undefined;
|
|
79
|
+
} | {
|
|
80
|
+
status: string;
|
|
81
|
+
fillKey: any;
|
|
82
|
+
error: any;
|
|
83
|
+
usedFallbackKey?: undefined;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Apply replay-safe fill accounting for tracked fills (with fill history id).
|
|
87
|
+
* Wraps applyReplaySafeFillAccounting with context and default message builders.
|
|
88
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
89
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
90
|
+
* @param {import('./types').FillOperationData} fillOp - Extracted fill operation data
|
|
91
|
+
* @param {Object} [options] - Options
|
|
92
|
+
* @param {string} [options.context] - Context label for log messages
|
|
93
|
+
* @param {Object} [options.logger] - Logger instance
|
|
94
|
+
* @param {Function} [options.replayMessage] - Callback to generate log message on duplicate fill
|
|
95
|
+
* @param {string} [options.persistenceMode='batched'] - Processed fill persistence mode
|
|
96
|
+
* @returns {Promise<import('./types').ReplaySafeFillResult>}
|
|
97
|
+
*/
|
|
98
|
+
declare function applyReplaySafeTrackedFillAccounting(bot: any, fill: any, fillOp: any, { context, logger, replayMessage, persistenceMode }?: {
|
|
99
|
+
context?: string;
|
|
100
|
+
logger?: any;
|
|
101
|
+
replayMessage?: any;
|
|
102
|
+
persistenceMode?: any;
|
|
103
|
+
}): Promise<{
|
|
104
|
+
status: string;
|
|
105
|
+
fillKey: any;
|
|
106
|
+
usedFallbackKey?: undefined;
|
|
107
|
+
error?: undefined;
|
|
108
|
+
} | {
|
|
109
|
+
status: string;
|
|
110
|
+
fillKey: any;
|
|
111
|
+
usedFallbackKey: boolean;
|
|
112
|
+
error?: undefined;
|
|
113
|
+
} | {
|
|
114
|
+
status: string;
|
|
115
|
+
fillKey: any;
|
|
116
|
+
error: any;
|
|
117
|
+
usedFallbackKey?: undefined;
|
|
118
|
+
}>;
|
|
119
|
+
/**
|
|
120
|
+
* Apply replay-safe fill accounting for orphan fills (missing fill history id).
|
|
121
|
+
* Uses a degraded orphan fallback key when the standard key is unavailable.
|
|
122
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
123
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
124
|
+
* @param {import('./types').FillOperationData} fillOp - Extracted fill operation data
|
|
125
|
+
* @param {Object} [options] - Options
|
|
126
|
+
* @param {string} [options.context] - Context label for log messages
|
|
127
|
+
* @param {Object} [options.logger] - Logger instance
|
|
128
|
+
* @param {Function} [options.replayMessage] - Callback to generate log message on duplicate fill
|
|
129
|
+
* @param {string} [options.persistenceMode='immediate'] - Processed fill persistence mode
|
|
130
|
+
* @returns {Promise<import('./types').ReplaySafeFillResult>}
|
|
131
|
+
*/
|
|
132
|
+
declare function applyReplaySafeOrphanFillAccounting(bot: any, fill: any, fillOp: any, { context, logger, replayMessage, persistenceMode }?: {
|
|
133
|
+
context?: string;
|
|
134
|
+
logger?: any;
|
|
135
|
+
replayMessage?: any;
|
|
136
|
+
persistenceMode?: any;
|
|
137
|
+
}): Promise<{
|
|
138
|
+
status: string;
|
|
139
|
+
fillKey: any;
|
|
140
|
+
usedFallbackKey?: undefined;
|
|
141
|
+
error?: undefined;
|
|
142
|
+
} | {
|
|
143
|
+
status: string;
|
|
144
|
+
fillKey: any;
|
|
145
|
+
usedFallbackKey: boolean;
|
|
146
|
+
error?: undefined;
|
|
147
|
+
} | {
|
|
148
|
+
status: string;
|
|
149
|
+
fillKey: any;
|
|
150
|
+
error: any;
|
|
151
|
+
usedFallbackKey?: undefined;
|
|
152
|
+
}>;
|
|
153
|
+
/**
|
|
154
|
+
* Create a fill callback handler for blockchain subscription events.
|
|
155
|
+
* Queues incoming fills and triggers fill queue consumption.
|
|
156
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
157
|
+
* @param {Object} chainOrders - Chain orders module
|
|
158
|
+
* @returns {Function} Async callback function accepting an array of fill events
|
|
159
|
+
*/
|
|
160
|
+
declare function createFillCallback(bot: any, chainOrders: any): (fills: any) => Promise<void>;
|
|
161
|
+
declare const _default: {
|
|
162
|
+
wireProcessedFillTracking: typeof wireProcessedFillTracking;
|
|
163
|
+
flushProcessedFillPersistence: typeof flushProcessedFillPersistence;
|
|
164
|
+
flushProcessedFillPersistenceForKeys: typeof flushProcessedFillPersistenceForKeys;
|
|
165
|
+
discardPendingProcessedFillPersistence: typeof discardPendingProcessedFillPersistence;
|
|
166
|
+
buildOrphanFillFallbackKey: typeof buildOrphanFillFallbackKey;
|
|
167
|
+
applyReplaySafeFillAccounting: typeof applyReplaySafeFillAccounting;
|
|
168
|
+
applyReplaySafeTrackedFillAccounting: typeof applyReplaySafeTrackedFillAccounting;
|
|
169
|
+
applyReplaySafeOrphanFillAccounting: typeof applyReplaySafeOrphanFillAccounting;
|
|
170
|
+
createFillCallback: typeof createFillCallback;
|
|
171
|
+
};
|
|
172
|
+
export = _default;
|
|
173
|
+
//# sourceMappingURL=dexbot_fill_runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dexbot_fill_runtime.d.ts","sourceRoot":"","sources":["../../modules/dexbot_fill_runtime.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,iBAAS,yBAAyB,CAAC,GAAG,KAAA,QAWrC;AAED;;;;;;GAMG;AACH,iBAAe,6BAA6B,CAAC,GAAG,KAAA,EAAE,MAAM,SAAW,EAAE,OAAO,KAAK,iBAGhF;AAED;;;;;;;GAOG;AACH,iBAAe,oCAAoC,CAAC,GAAG,KAAA,EAAE,QAAQ,KAAA,EAAE,MAAM,SAAoB,EAAE,OAAO,KAAK,iBAG1G;AAED;;;;GAIG;AACH,iBAAS,sCAAsC,CAAC,GAAG,KAAA,EAAE,QAAQ,KAAA,QAE5D;AAED;;;;;;GAMG;AACH,iBAAS,0BAA0B,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,UAmB5C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAe,6BAA6B,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,EAC5D,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,MAA4B,EAC5B,eAAwB,EACxB,gBAAyB,EACzB,WAAqB,EACrB,eAA4D,EAC5D,sBAA8B,EACjC,GAAE;IACC,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC/B;;;;;;;;;;;;;;;GAoCL;AAED;;;;;;;;;;;;GAYG;AACH,iBAAe,oCAAoC,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,EACnE,OAAO,EACP,MAA4B,EAC5B,aAAa,EACb,eAA0D,EAC7D,GAAE;IACC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,eAAe,CAAC,EAAE,GAAG,CAAC;CACpB;;;;;;;;;;;;;;;GAQL;AAED;;;;;;;;;;;;GAYG;AACH,iBAAe,mCAAmC,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,EAClE,OAAO,EACP,MAA4B,EAC5B,aAAa,EACb,eAA4D,EAC/D,GAAE;IACC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,eAAe,CAAC,EAAE,GAAG,CAAC;CACpB;;;;;;;;;;;;;;;GAUL;AAED;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,GAAG,KAAA,EAAE,WAAW,KAAA,IAC1B,UAAK,mBAmBtB;;;;;;;;;;;;AAED,kBAUE"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Fill processing runtime - handles order fill events and replay-safe accounting */
|
|
3
|
+
const { buildFillKey } = require('./order/utils/order');
|
|
4
|
+
const { PROCESSED_FILL_PERSISTENCE_MODES } = require('./order/processed_fill_store');
|
|
5
|
+
const { NATIVE_CLIENT } = require('./constants');
|
|
6
|
+
/**
|
|
7
|
+
* Wire processed fill tracking into the manager and processed fill store.
|
|
8
|
+
* Establishes the bidirectional link between the runtime's processed fill store
|
|
9
|
+
* and the OrderManager's processed fill tracker.
|
|
10
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
11
|
+
*/
|
|
12
|
+
function wireProcessedFillTracking(bot) {
|
|
13
|
+
if (!bot.manager)
|
|
14
|
+
return;
|
|
15
|
+
bot._processedFillStore.configure({
|
|
16
|
+
accountOrders: bot.accountOrders
|
|
17
|
+
});
|
|
18
|
+
bot._processedFillStore.mergeTracker(bot.manager.processedFillTracker);
|
|
19
|
+
bot.manager.processedFillTracker = bot._recentlyProcessedFills;
|
|
20
|
+
bot.manager.processedFillStore = bot._processedFillStore;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Flush all pending processed fill writes to persistent storage.
|
|
24
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
25
|
+
* @param {string} [reason='manual'] - Reason label for the flush
|
|
26
|
+
* @param {Object} [options] - Flush options forwarded to ProcessedFillStore.flush
|
|
27
|
+
* @returns {Promise<void>}
|
|
28
|
+
*/
|
|
29
|
+
async function flushProcessedFillPersistence(bot, reason = 'manual', options = {}) {
|
|
30
|
+
bot._processedFillStore.setShuttingDown(bot._shuttingDown);
|
|
31
|
+
await bot._processedFillStore.flush(reason, options);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Flush pending processed fill writes for specific fill keys.
|
|
35
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
36
|
+
* @param {string[]|Set<string>} fillKeys - Fill keys to flush
|
|
37
|
+
* @param {string} [reason='manual-selected'] - Reason label for the flush
|
|
38
|
+
* @param {Object} [options] - Flush options forwarded to ProcessedFillStore.flushKeys
|
|
39
|
+
* @returns {Promise<void>}
|
|
40
|
+
*/
|
|
41
|
+
async function flushProcessedFillPersistenceForKeys(bot, fillKeys, reason = 'manual-selected', options = {}) {
|
|
42
|
+
bot._processedFillStore.setShuttingDown(bot._shuttingDown);
|
|
43
|
+
await bot._processedFillStore.flushKeys(fillKeys, reason, options);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Discard pending processed fill writes for specific fill keys from the queue.
|
|
47
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
48
|
+
* @param {string[]|Set<string>} fillKeys - Fill keys to discard
|
|
49
|
+
*/
|
|
50
|
+
function discardPendingProcessedFillPersistence(bot, fillKeys) {
|
|
51
|
+
bot._processedFillStore.discardKeys(fillKeys);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build a degraded orphan fill replay key when the standard fill history id is missing.
|
|
55
|
+
* The fallback key is derived from order_id, block_num, pays/receives amounts and asset IDs.
|
|
56
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
57
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
58
|
+
* @returns {string|null} Orphan fallback key or null if insufficient data
|
|
59
|
+
*/
|
|
60
|
+
function buildOrphanFillFallbackKey(bot, fill) {
|
|
61
|
+
const fillOp = fill?.op?.[1];
|
|
62
|
+
const orderId = fillOp?.order_id;
|
|
63
|
+
const blockNum = fill?.block_num;
|
|
64
|
+
const paysAssetId = fillOp?.pays?.asset_id;
|
|
65
|
+
const paysAmount = fillOp?.pays?.amount;
|
|
66
|
+
const receivesAssetId = fillOp?.receives?.asset_id;
|
|
67
|
+
const receivesAmount = fillOp?.receives?.amount;
|
|
68
|
+
const makerRole = fillOp?.is_maker === false ? 'taker' : 'maker';
|
|
69
|
+
// Include operation-type ID, transaction-in-block index, and
|
|
70
|
+
// operation-in-transaction index to reduce collision risk when
|
|
71
|
+
// multiple fills match on order + amounts + block number.
|
|
72
|
+
const opType = fill?.op?.[0];
|
|
73
|
+
const trxInBlock = fill?.trx_in_block;
|
|
74
|
+
const opInTrx = fill?.op_in_trx;
|
|
75
|
+
if (!orderId || blockNum == null || !paysAssetId || paysAmount == null || !receivesAssetId || receivesAmount == null) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return `orphan:${orderId}:${blockNum}:${paysAssetId}:${paysAmount}:${receivesAssetId}:${receivesAmount}:${makerRole}:${opType ?? ''}:${trxInBlock ?? ''}:${opInTrx ?? ''}`;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Apply fill accounting with replay-safe deduplication.
|
|
82
|
+
* Prevents the same fill from being accounted twice across restarts or re-syncs.
|
|
83
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
84
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
85
|
+
* @param {import('./types').FillOperationData} fillOp - Extracted fill operation data
|
|
86
|
+
* @param {Object} [options] - Options
|
|
87
|
+
* @param {Function} [options.missingKeyMessage] - Callback to generate log message when fill key is missing
|
|
88
|
+
* @param {Function} [options.fallbackKeyMessage] - Callback to generate log message when fallback key is used
|
|
89
|
+
* @param {Function} [options.replayMessage] - Callback to generate log message on duplicate fill
|
|
90
|
+
* @param {Function} [options.errorMessage] - Callback to generate log message on error
|
|
91
|
+
* @param {Object} [options.logger] - Logger instance
|
|
92
|
+
* @param {string} [options.missingKeyLevel='warn'] - Log level for missing key messages
|
|
93
|
+
* @param {string} [options.fallbackKeyLevel='warn'] - Log level for fallback key messages
|
|
94
|
+
* @param {string} [options.replayLevel='debug'] - Log level for replay messages
|
|
95
|
+
* @param {string} [options.persistenceMode='immediate'] - Processed fill persistence mode
|
|
96
|
+
* @param {boolean} [options.allowOrphanFallbackKey=false] - Allow degraded orphan fallback key
|
|
97
|
+
* @returns {Promise<import('./types').ReplaySafeFillResult>}
|
|
98
|
+
*/
|
|
99
|
+
async function applyReplaySafeFillAccounting(bot, fill, fillOp, { missingKeyMessage, fallbackKeyMessage, replayMessage, errorMessage, logger = bot.manager?.logger, missingKeyLevel = 'warn', fallbackKeyLevel = 'warn', replayLevel = 'debug', persistenceMode = PROCESSED_FILL_PERSISTENCE_MODES.IMMEDIATE, allowOrphanFallbackKey = false } = {}) {
|
|
100
|
+
let fillKey = buildFillKey(fill);
|
|
101
|
+
let usedFallbackKey = false;
|
|
102
|
+
if (!fillKey && allowOrphanFallbackKey) {
|
|
103
|
+
fillKey = buildOrphanFillFallbackKey(bot, fill);
|
|
104
|
+
usedFallbackKey = Boolean(fillKey);
|
|
105
|
+
if (usedFallbackKey && fallbackKeyMessage) {
|
|
106
|
+
logger?.log?.(fallbackKeyMessage(fillOp, fill, fillKey), fallbackKeyLevel);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (!fillKey) {
|
|
110
|
+
if (missingKeyMessage) {
|
|
111
|
+
logger?.log?.(missingKeyMessage(fillOp, fill), missingKeyLevel);
|
|
112
|
+
}
|
|
113
|
+
return { status: 'missing_key', fillKey: null };
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const applied = await bot.manager.accountant.processFillAccounting(fillOp, fillKey, { persistenceMode });
|
|
117
|
+
if (!applied) {
|
|
118
|
+
if (replayMessage) {
|
|
119
|
+
logger?.log?.(replayMessage(fillOp, fill, fillKey), replayLevel);
|
|
120
|
+
}
|
|
121
|
+
return { status: 'duplicate', fillKey };
|
|
122
|
+
}
|
|
123
|
+
return { status: 'applied', fillKey, usedFallbackKey };
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
if (errorMessage) {
|
|
127
|
+
logger?.log?.(errorMessage(fillOp, fill, err), 'error');
|
|
128
|
+
return { status: 'error', fillKey, error: err };
|
|
129
|
+
}
|
|
130
|
+
throw err;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Apply replay-safe fill accounting for tracked fills (with fill history id).
|
|
135
|
+
* Wraps applyReplaySafeFillAccounting with context and default message builders.
|
|
136
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
137
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
138
|
+
* @param {import('./types').FillOperationData} fillOp - Extracted fill operation data
|
|
139
|
+
* @param {Object} [options] - Options
|
|
140
|
+
* @param {string} [options.context] - Context label for log messages
|
|
141
|
+
* @param {Object} [options.logger] - Logger instance
|
|
142
|
+
* @param {Function} [options.replayMessage] - Callback to generate log message on duplicate fill
|
|
143
|
+
* @param {string} [options.persistenceMode='batched'] - Processed fill persistence mode
|
|
144
|
+
* @returns {Promise<import('./types').ReplaySafeFillResult>}
|
|
145
|
+
*/
|
|
146
|
+
async function applyReplaySafeTrackedFillAccounting(bot, fill, fillOp, { context, logger = bot.manager?.logger, replayMessage, persistenceMode = PROCESSED_FILL_PERSISTENCE_MODES.BATCHED } = {}) {
|
|
147
|
+
return applyReplaySafeFillAccounting(bot, fill, fillOp, {
|
|
148
|
+
logger,
|
|
149
|
+
missingKeyMessage: (op) => `[${context}] Missing fill history id for ${op.order_id}; deferring to open-orders sync`,
|
|
150
|
+
replayMessage,
|
|
151
|
+
errorMessage: (op, _fill, err) => `[${context}] Failed to process accounting for ${op.order_id}: ${err.message}`,
|
|
152
|
+
persistenceMode
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Apply replay-safe fill accounting for orphan fills (missing fill history id).
|
|
157
|
+
* Uses a degraded orphan fallback key when the standard key is unavailable.
|
|
158
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
159
|
+
* @param {import('./types').FillEvent} fill - Raw fill event
|
|
160
|
+
* @param {import('./types').FillOperationData} fillOp - Extracted fill operation data
|
|
161
|
+
* @param {Object} [options] - Options
|
|
162
|
+
* @param {string} [options.context] - Context label for log messages
|
|
163
|
+
* @param {Object} [options.logger] - Logger instance
|
|
164
|
+
* @param {Function} [options.replayMessage] - Callback to generate log message on duplicate fill
|
|
165
|
+
* @param {string} [options.persistenceMode='immediate'] - Processed fill persistence mode
|
|
166
|
+
* @returns {Promise<import('./types').ReplaySafeFillResult>}
|
|
167
|
+
*/
|
|
168
|
+
async function applyReplaySafeOrphanFillAccounting(bot, fill, fillOp, { context, logger = bot.manager?.logger, replayMessage, persistenceMode = PROCESSED_FILL_PERSISTENCE_MODES.IMMEDIATE } = {}) {
|
|
169
|
+
return applyReplaySafeFillAccounting(bot, fill, fillOp, {
|
|
170
|
+
logger,
|
|
171
|
+
missingKeyMessage: (op) => `[${context}] Missing fill history id and orphan fallback key for ${op.order_id}; deferring to open-orders sync`,
|
|
172
|
+
fallbackKeyMessage: (op) => `[${context}] Missing fill history id for orphan fill ${op.order_id}; using degraded orphan replay key for proceeds-only accounting`,
|
|
173
|
+
replayMessage,
|
|
174
|
+
errorMessage: (op, _fill, err) => `[${context}] Failed to process accounting for ${op.order_id}: ${err.message}`,
|
|
175
|
+
persistenceMode,
|
|
176
|
+
allowOrphanFallbackKey: true
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Create a fill callback handler for blockchain subscription events.
|
|
181
|
+
* Queues incoming fills and triggers fill queue consumption.
|
|
182
|
+
* @param {import('./dexbot_class').DEXBot} bot
|
|
183
|
+
* @param {Object} chainOrders - Chain orders module
|
|
184
|
+
* @returns {Function} Async callback function accepting an array of fill events
|
|
185
|
+
*/
|
|
186
|
+
function createFillCallback(bot, chainOrders) {
|
|
187
|
+
return async (fills) => {
|
|
188
|
+
if (bot._shuttingDown) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (bot.manager && !bot.config.dryRun && Array.isArray(fills) && fills.length > 0) {
|
|
192
|
+
const maxQueueDepth = NATIVE_CLIENT.SUBSCRIPTIONS.MAX_INCOMING_FILL_QUEUE;
|
|
193
|
+
if (bot._incomingFillQueue.length + fills.length > maxQueueDepth) {
|
|
194
|
+
const message = `Incoming fill queue back-pressure: ${bot._incomingFillQueue.length} queued + ${fills.length} incoming exceeds limit ${maxQueueDepth}`;
|
|
195
|
+
bot._warn(message);
|
|
196
|
+
throw new Error(message);
|
|
197
|
+
}
|
|
198
|
+
bot._markGridActivity?.('fill queued');
|
|
199
|
+
bot._incomingFillQueue.push(...fills);
|
|
200
|
+
bot._consumeFillQueue(chainOrders).catch(err => {
|
|
201
|
+
bot._warn(`Fill queue consume failed: ${err.message}`);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
module.exports = {
|
|
207
|
+
wireProcessedFillTracking,
|
|
208
|
+
flushProcessedFillPersistence,
|
|
209
|
+
flushProcessedFillPersistenceForKeys,
|
|
210
|
+
discardPendingProcessedFillPersistence,
|
|
211
|
+
buildOrphanFillFallbackKey,
|
|
212
|
+
applyReplaySafeFillAccounting,
|
|
213
|
+
applyReplaySafeTrackedFillAccounting,
|
|
214
|
+
applyReplaySafeOrphanFillAccounting,
|
|
215
|
+
createFillCallback
|
|
216
|
+
};
|
|
217
|
+
//# sourceMappingURL=dexbot_fill_runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dexbot_fill_runtime.js","sourceRoot":"","sources":["../../modules/dexbot_fill_runtime.ts"],"names":[],"mappings":"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"}
|