dexbot 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/README.md +4 -3
- package/analysis/README.md +1 -2
- package/analysis/ama_fitting/fetch_lp_candles.ts +1 -9
- package/analysis/ama_fitting/package.json +1 -1
- package/analysis/analyze_derivatives.ts +1 -1
- package/analysis/bot_usage/discover_bot_accounts.ts +12 -6
- package/analysis/resolve_source.ts +11 -1
- package/analysis/results/ama_sweep_results_lp_pool_133_1h.json +2455 -0
- package/analysis/results/bot_fitting_results_lp_pool_133_1h.json +218 -0
- package/analysis/tradingview/README.md +32 -10
- package/analysis/tradingview/analyze_tradingview.ts +118 -3
- package/analysis/tradingview/h-bts_tradingview.html +1570 -0
- package/analysis/tradingview/t-bts_tradingview.html +1570 -0
- package/analysis/tradingview/tradingview_uplot_chart_generator.ts +1392 -125
- package/analysis/trend_detection/package.json +1 -1
- package/claw/docs/DEXBOT2_TUNING_CHEAT_SHEET.md +1 -1
- package/claw/modules/dexbot_profiles.ts +22 -2
- package/claw/package.json +1 -1
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/skills/launcher-ops/references/launcher-workflow.md +1 -1
- package/claw/tests/test_claw_mcp_transport.ts +2 -2
- package/claw/tests/test_dexbot_profiles.ts +65 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.js +1 -9
- package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -1
- package/dist/analysis/analyze_derivatives.js +1 -1
- package/dist/analysis/bot_usage/discover_bot_accounts.js +11 -6
- package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -1
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +2 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -1
- package/dist/analysis/resolve_source.d.ts +1 -0
- package/dist/analysis/resolve_source.d.ts.map +1 -1
- package/dist/analysis/resolve_source.js +8 -1
- package/dist/analysis/resolve_source.js.map +1 -1
- package/dist/analysis/tradingview/analyze_tradingview.d.ts +8 -0
- package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -1
- package/dist/analysis/tradingview/analyze_tradingview.js +137 -3
- package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +5 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1387 -125
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
- package/dist/bot.js +1 -1
- package/dist/bot.js.map +1 -1
- package/dist/dexbot.js +3 -3
- package/dist/dexbot.js.map +1 -1
- package/dist/market_adapter/ama_signal_runner.js +2 -2
- package/dist/market_adapter/candle_utils.d.ts +6 -0
- package/dist/market_adapter/candle_utils.d.ts.map +1 -1
- package/dist/market_adapter/candle_utils.js +6 -0
- package/dist/market_adapter/candle_utils.js.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.d.ts +33 -1
- package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.js +38 -1
- package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
- package/dist/market_adapter/core/kibana_candles.d.ts +17 -1
- package/dist/market_adapter/core/kibana_candles.d.ts.map +1 -1
- package/dist/market_adapter/core/kibana_candles.js +101 -19
- package/dist/market_adapter/core/kibana_candles.js.map +1 -1
- package/dist/market_adapter/core/kibana_client.d.ts +2 -0
- package/dist/market_adapter/core/kibana_client.d.ts.map +1 -1
- package/dist/market_adapter/core/kibana_client.js +31 -4
- package/dist/market_adapter/core/kibana_client.js.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.js +0 -6
- package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_book_data.d.ts +14 -0
- package/dist/market_adapter/inputs/fetch_book_data.d.ts.map +1 -0
- package/dist/market_adapter/inputs/fetch_book_data.js +138 -0
- package/dist/market_adapter/inputs/fetch_book_data.js.map +1 -0
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts +16 -2
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.js +109 -281
- package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
- package/dist/market_adapter/inputs/kibana_feed_source.d.ts +87 -0
- package/dist/market_adapter/inputs/kibana_feed_source.d.ts.map +1 -0
- package/dist/market_adapter/inputs/kibana_feed_source.js +570 -0
- package/dist/market_adapter/inputs/kibana_feed_source.js.map +1 -0
- package/dist/market_adapter/inputs/kibana_source.d.ts.map +1 -1
- package/dist/market_adapter/inputs/kibana_source.js +10 -5
- package/dist/market_adapter/inputs/kibana_source.js.map +1 -1
- package/dist/market_adapter/inputs/window_cache.d.ts +166 -0
- package/dist/market_adapter/inputs/window_cache.d.ts.map +1 -0
- package/dist/market_adapter/inputs/window_cache.js +500 -0
- package/dist/market_adapter/inputs/window_cache.js.map +1 -0
- package/dist/market_adapter/interval_utils.d.ts +8 -1
- package/dist/market_adapter/interval_utils.d.ts.map +1 -1
- package/dist/market_adapter/interval_utils.js +14 -1
- package/dist/market_adapter/interval_utils.js.map +1 -1
- package/dist/modules/account_bots.d.ts +1 -0
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +21 -5
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/account_orders.d.ts +25 -4
- package/dist/modules/account_orders.d.ts.map +1 -1
- package/dist/modules/account_orders.js +67 -4
- package/dist/modules/account_orders.js.map +1 -1
- package/dist/modules/bitshares-native/chain_client.d.ts +2 -0
- package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -1
- package/dist/modules/bitshares-native/chain_client.js +3 -1
- package/dist/modules/bitshares-native/chain_client.js.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.js +13 -3
- package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
- package/dist/modules/bitshares-native/transport.d.ts +2 -0
- package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
- package/dist/modules/bitshares-native/transport.js +122 -28
- package/dist/modules/bitshares-native/transport.js.map +1 -1
- package/dist/modules/bitshares_client.d.ts.map +1 -1
- package/dist/modules/bitshares_client.js +59 -8
- package/dist/modules/bitshares_client.js.map +1 -1
- package/dist/modules/bot_settings.d.ts.map +1 -1
- package/dist/modules/bot_settings.js +11 -0
- package/dist/modules/bot_settings.js.map +1 -1
- package/dist/modules/constants.d.ts +13 -0
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +68 -4
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +10 -18
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +57 -2
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +62 -37
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +797 -569
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_fill_runtime.d.ts +41 -1
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_fill_runtime.js +135 -5
- package/dist/modules/dexbot_fill_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +79 -12
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +585 -97
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_startup_runtime.js +13 -0
- package/dist/modules/dexbot_startup_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts +15 -1
- package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +36 -7
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/fund_registry.d.ts +1 -1
- package/dist/modules/fund_registry.js +1 -1
- package/dist/modules/node_connect_policy.d.ts +52 -0
- package/dist/modules/node_connect_policy.d.ts.map +1 -0
- package/dist/modules/node_connect_policy.js +35 -0
- package/dist/modules/node_connect_policy.js.map +1 -0
- package/dist/modules/node_manager.d.ts +32 -0
- package/dist/modules/node_manager.d.ts.map +1 -1
- package/dist/modules/node_manager.js +76 -9
- package/dist/modules/node_manager.js.map +1 -1
- package/dist/modules/order/accounting.d.ts +30 -0
- package/dist/modules/order/accounting.d.ts.map +1 -1
- package/dist/modules/order/accounting.js +176 -3
- package/dist/modules/order/accounting.js.map +1 -1
- package/dist/modules/order/export.d.ts.map +1 -1
- package/dist/modules/order/export.js +1 -0
- package/dist/modules/order/export.js.map +1 -1
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +170 -51
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile.js +5 -3
- package/dist/modules/order/grid_reconcile.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +182 -6
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/manager.d.ts +66 -3
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +238 -12
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/strategy.d.ts +3 -0
- package/dist/modules/order/strategy.d.ts.map +1 -1
- package/dist/modules/order/strategy.js +79 -7
- package/dist/modules/order/strategy.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +90 -1
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +20 -12
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +33 -12
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts +308 -28
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +862 -38
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +37 -30
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +130 -101
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/order/utils/validate.d.ts +3 -2
- package/dist/modules/order/utils/validate.d.ts.map +1 -1
- package/dist/modules/order/utils/validate.js +11 -3
- package/dist/modules/order/utils/validate.js.map +1 -1
- package/dist/modules/paths.d.ts +2 -0
- package/dist/modules/paths.d.ts.map +1 -1
- package/dist/modules/paths.js +1 -0
- package/dist/modules/paths.js.map +1 -1
- package/dist/modules/runtime_settings.d.ts +13 -0
- package/dist/modules/runtime_settings.d.ts.map +1 -1
- package/dist/modules/runtime_settings.js +20 -0
- package/dist/modules/runtime_settings.js.map +1 -1
- package/dist/modules/utils/errors.d.ts +16 -0
- package/dist/modules/utils/errors.d.ts.map +1 -1
- package/dist/modules/utils/errors.js +31 -0
- package/dist/modules/utils/errors.js.map +1 -1
- package/dist/pm2.js +7 -7
- package/dist/scripts/analyze-credit.d.ts.map +1 -1
- package/dist/scripts/analyze-credit.js +13 -3
- package/dist/scripts/analyze-credit.js.map +1 -1
- package/dist/scripts/analyze-orders.js +2 -2
- package/dist/scripts/analyze-orders.js.map +1 -1
- package/dist/scripts/diagnose-kibana-candles.d.ts.map +1 -1
- package/dist/scripts/diagnose-kibana-candles.js +0 -1
- package/dist/scripts/diagnose-kibana-candles.js.map +1 -1
- package/dist/scripts/test-credit-renewal.js +1 -1
- package/dist/scripts/test-credit-renewal.js.map +1 -1
- package/dist/scripts/tv.d.ts +24 -2
- package/dist/scripts/tv.d.ts.map +1 -1
- package/dist/scripts/tv.js +190 -65
- package/dist/scripts/tv.js.map +1 -1
- package/docs/BITSHARES_ONBOARDING.md +9 -2
- package/docs/COW_INVARIANTS.md +18 -1
- package/docs/DEXBOT_COMPARISON.md +3 -3
- package/docs/EVOLUTION.md +9 -7
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +21 -9
- package/docs/GRID_RECALCULATION.md +5 -6
- package/docs/GRID_RECONCILE.md +12 -2
- package/docs/MPA_CREDIT_USAGE.md +2 -2
- package/docs/README.md +5 -6
- package/docs/architecture.md +0 -58
- package/docs/developer_guide.md +2 -1
- package/docs/docker.md +1 -1
- package/market_adapter/README.md +4 -0
- package/modules/README.md +1 -1
- package/package.json +1 -1
- package/scripts/README.md +5 -3
- package/tests/README.md +2 -2
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Includes grid indexing, order comparison, delta building, and strategy calculations.
|
|
6
6
|
*
|
|
7
7
|
* ===============================================================================
|
|
8
|
-
* TABLE OF CONTENTS (
|
|
8
|
+
* TABLE OF CONTENTS (35 exported functions)
|
|
9
9
|
* ===============================================================================
|
|
10
10
|
*
|
|
11
11
|
* SECTION 1: CHAIN ORDER MATCHING & RECONCILIATION (5 functions)
|
|
@@ -46,9 +46,8 @@
|
|
|
46
46
|
* - checkSizeThreshold(size, threshold) - Check if size exceeds threshold
|
|
47
47
|
* - checkSizesBeforeMinimum(sizes, minSize) - Check sizes against minimum
|
|
48
48
|
*
|
|
49
|
-
* SECTION 7: GRID BOUNDARY & ROLES (
|
|
49
|
+
* SECTION 7: GRID BOUNDARY & ROLES (3 functions)
|
|
50
50
|
* - calculateIdealBoundary(allSlots, startPrice, gapSlots) - Calculate ideal boundary
|
|
51
|
-
* - calculateFundDrivenBoundary(allSlots, availA, availB, startPrice, gapSlots) - Fund-driven boundary
|
|
52
51
|
* - assignGridRoles(allSlots, boundaryIdx, gapSlots, ...) - Assign BUY/SELL roles
|
|
53
52
|
* - shouldFlagOutOfSpread(order, startPrice, configSpread) - Check if order is out of spread
|
|
54
53
|
*
|
|
@@ -61,10 +60,14 @@
|
|
|
61
60
|
* - buildDelta(masterGrid, workingGrid) - Build delta actions between grids
|
|
62
61
|
* - getOrderSize(order) - Extract order size with fallback
|
|
63
62
|
*
|
|
64
|
-
* SECTION 10: STRATEGY CALCULATIONS (
|
|
65
|
-
* -
|
|
66
|
-
* -
|
|
67
|
-
* -
|
|
63
|
+
* SECTION 10: STRATEGY CALCULATIONS (7 functions)
|
|
64
|
+
* - resolveReserveCount(config, side) - Clamped per-side reserve count (>=0 int, 0 disables)
|
|
65
|
+
* - resolveReserveOrders(config) - Total reserves buy+sell (fee/count totals)
|
|
66
|
+
* - resolveLiveReserveEdgeAnchorPrice(manager, side) - Live-grid edge anchor (ladder/rail extreme first, config bound last; null when unresolved)
|
|
67
|
+
* - resolveReserveEdgeAnchorPrice(config, side) - Config-bound anchor fallback (buy→minPrice, sell→maxPrice; null when unresolvable)
|
|
68
|
+
* - compareReserveEdge(a, b, edge, anchorPrice) - Shared anchored edge comparator (single ordering source)
|
|
69
|
+
* - reserveEdgeIdSet(allSlots, config, orderType, anchorPrice?) - Edge reserve id set (config count; shares the picker ordering)
|
|
70
|
+
* - selectReserveEdgeSlots(sortedAsc, count, excludeIds, edge, anchorPrice?) - Shared position picker (both edges anchor toward their bound)
|
|
68
71
|
*
|
|
69
72
|
* ===============================================================================
|
|
70
73
|
*/
|
|
@@ -494,6 +497,23 @@ declare function extractBatchOperationResults(result: any): any;
|
|
|
494
497
|
* @returns {string} Compact human-readable diagnostic.
|
|
495
498
|
*/
|
|
496
499
|
declare function formatUnmatchedChainOrder(order: any): string;
|
|
500
|
+
/**
|
|
501
|
+
* Whether an unmatched chain-order entry is a deliberate hold that must NOT
|
|
502
|
+
* block CREATEs or snapshot recovery.
|
|
503
|
+
*
|
|
504
|
+
* Deferred entries (`reason` suffixed `-deferred`) are permanently
|
|
505
|
+
* non-adoptable and non-cancellable: an out-of-grid hold sits outside the
|
|
506
|
+
* frozen rail, and a boundary-unknown hold is re-evaluated once the boundary
|
|
507
|
+
* commits. Treating one as a blocker freezes the whole grid (a single
|
|
508
|
+
* dip-protection hold would stop every CREATE) and forces a full reset on
|
|
509
|
+
* recovery. Classification is by the shared `-deferred` suffix, not an exact
|
|
510
|
+
* reason string, so a new defer reason cannot silently regress into a
|
|
511
|
+
* permanent blocker.
|
|
512
|
+
*
|
|
513
|
+
* @param {Object} order - Unmatched chain order entry.
|
|
514
|
+
* @returns {boolean} True when the entry is a non-blocking deferred hold.
|
|
515
|
+
*/
|
|
516
|
+
declare function isNonBlockingUnmatchedOrder(order: any): boolean;
|
|
497
517
|
/**
|
|
498
518
|
* Check if order is on blockchain (ACTIVE or PARTIAL state).
|
|
499
519
|
*
|
|
@@ -620,24 +640,19 @@ declare function checkSizesBeforeMinimum(sizes: any, minSize: any, precision: an
|
|
|
620
640
|
* Calculate ideal grid boundary based on reference price.
|
|
621
641
|
* Places boundary near reference price with gap spacing in mind.
|
|
622
642
|
*
|
|
643
|
+
* A non-numeric reference (e.g. the unresolved "pool"/"book" mode strings)
|
|
644
|
+
* makes every `price >= reference` comparison false, which used to resolve
|
|
645
|
+
* `splitIdx` to `allSlots.length` and fabricate a top-of-rail boundary —
|
|
646
|
+
* the degenerate all-buy geometry behind the 02:03 slot-77→slot-192 (+58%)
|
|
647
|
+
* teleport plan. Fail toward rail-center instead; callers with a real
|
|
648
|
+
* anchor (genesis startPrice, live center) override before calling.
|
|
649
|
+
*
|
|
623
650
|
* @param {Array<Object>} allSlots - All grid slots sorted by price
|
|
624
651
|
* @param {number} referencePrice - Reference/anchor price
|
|
625
652
|
* @param {number} gapSlots - Number of gap slots between buy and sell
|
|
626
653
|
* @returns {number} Ideal boundary index or -1 if slots empty
|
|
627
654
|
*/
|
|
628
655
|
declare function calculateIdealBoundary(allSlots: any, referencePrice: any, gapSlots: any): number;
|
|
629
|
-
/**
|
|
630
|
-
* Calculate grid boundary based on available funds ratio.
|
|
631
|
-
* Distributes buy/sell slots proportional to fund values.
|
|
632
|
-
*
|
|
633
|
-
* @param {Array<Object>} allSlots - All grid slots sorted by price
|
|
634
|
-
* @param {number} availA - Available assetA (sell-side capital)
|
|
635
|
-
* @param {number} availB - Available assetB (buy-side capital)
|
|
636
|
-
* @param {number} price - Current reference price for valuation
|
|
637
|
-
* @param {number} gapSlots - Number of gap slots between buy and sell
|
|
638
|
-
* @returns {number} Fund-driven boundary index
|
|
639
|
-
*/
|
|
640
|
-
declare function calculateFundDrivenBoundary(allSlots: any, availA: any, availB: any, price: any, gapSlots: any): number;
|
|
641
656
|
/**
|
|
642
657
|
* Assign BUY/SELL/SPREAD roles to grid slots based on boundary.
|
|
643
658
|
* Slots below boundary are BUY, above boundary are SELL, between are SPREAD.
|
|
@@ -693,12 +708,6 @@ declare function validateIndexes(grid: any, indexes: any): {
|
|
|
693
708
|
valid: boolean;
|
|
694
709
|
errors: string[];
|
|
695
710
|
};
|
|
696
|
-
/**
|
|
697
|
-
* Extract order size with fallback
|
|
698
|
-
* @param {Object} order - Order object
|
|
699
|
-
* @returns {number|null} - Size or null if not found
|
|
700
|
-
*/
|
|
701
|
-
declare function getOrderSize(order: any): number | null;
|
|
702
711
|
/**
|
|
703
712
|
* Compare two orders for equality
|
|
704
713
|
* @param {Object} a - First order
|
|
@@ -737,13 +746,235 @@ declare function buildDelta(masterGrid: any, workingGrid: any, options?: any): a
|
|
|
737
746
|
* @returns {boolean} True when the fill may shift the boundary
|
|
738
747
|
*/
|
|
739
748
|
declare function isShiftEligibleFill(fill: any): boolean;
|
|
740
|
-
declare function deriveTargetBoundary(fills: any, currentBoundaryIdx: any, allSlots: any, config: any, gapSlots: any, crossChunkBudget?: number | null
|
|
741
|
-
|
|
749
|
+
declare function deriveTargetBoundary(fills: any, currentBoundaryIdx: any, allSlots: any, config: any, gapSlots: any, crossChunkBudget?: number | null, pendingCrawls?: any[], edgeAnchors?: {
|
|
750
|
+
buy?: number | null;
|
|
751
|
+
sell?: number | null;
|
|
752
|
+
} | null): {
|
|
753
|
+
boundaryIdx: number | null;
|
|
742
754
|
remainingBudget: number;
|
|
743
755
|
};
|
|
756
|
+
/**
|
|
757
|
+
* Apply recorded-but-uncommitted fill crawls to the committed boundary.
|
|
758
|
+
* Fills are recorded at intake (strategy) and consumed by derivation on
|
|
759
|
+
* commit — but a refused broadcast, a plan abort, or a restart in between
|
|
760
|
+
* leaves their crawl owed and the boundary stale. The next derivation
|
|
761
|
+
* incorporates them in-run (pendingCrawls param); this consumes them onto
|
|
762
|
+
* a restored boundary at startup, before reconcile refills holes.
|
|
763
|
+
*
|
|
764
|
+
* Safety: entries are relative deltas, so they apply only onto a FINITE
|
|
765
|
+
* restored boundary (a null boundary is re-anchored absolutely from live
|
|
766
|
+
* fill prices instead — subsuming every owed delta). The candidate is
|
|
767
|
+
* validated placed-order-aware like GRID-LOAD; on failure the entries are
|
|
768
|
+
* dropped rather than stranding live orders. Commits clear the record, so
|
|
769
|
+
* entries present here predate every commit since recording — always owed.
|
|
770
|
+
*
|
|
771
|
+
* @param {any} manager - OrderManager (boundaryIdx, orders, config restored)
|
|
772
|
+
* @returns {{applied: boolean, from?: number, to?: number, count?: number, reason?: string}}
|
|
773
|
+
*/
|
|
774
|
+
export declare function consumePendingFillCrawls(manager: any): {
|
|
775
|
+
applied: boolean;
|
|
776
|
+
from?: number;
|
|
777
|
+
to?: number;
|
|
778
|
+
count?: number;
|
|
779
|
+
reason?: string;
|
|
780
|
+
};
|
|
781
|
+
/**
|
|
782
|
+
* Per-side reserve count (edge-pinned fat-finger insurance orders).
|
|
783
|
+
* Buy reserves pin at the grid floor, sell reserves at the grid ceiling.
|
|
784
|
+
* Non-finite/non-integer/negative values disable (0).
|
|
785
|
+
*
|
|
786
|
+
* @param {Object} config - Bot configuration
|
|
787
|
+
* @param {string} side - 'buy' or 'sell'
|
|
788
|
+
* @returns {number} Reserve count for the side (>= 0 integer)
|
|
789
|
+
*/
|
|
790
|
+
declare function resolveReserveCount(config: any, side: any): number;
|
|
791
|
+
/**
|
|
792
|
+
* Total reserve count across both sides (fee/count totals).
|
|
793
|
+
*
|
|
794
|
+
* @param {Object} config - Bot configuration
|
|
795
|
+
* @returns {number} Total reserves (buy + sell)
|
|
796
|
+
*/
|
|
797
|
+
declare function resolveReserveOrders(config: any): number;
|
|
798
|
+
/**
|
|
799
|
+
* Edge-pinned reserve id set for one side, or null when disabled.
|
|
800
|
+
* Type/price-filtered, then ordered by the SAME edge order the placement
|
|
801
|
+
* pickers use (compareReserveEdge via selectReserveEdgeSlots) — single source
|
|
802
|
+
* of truth, so the no-crawl classification can never drift from placement.
|
|
803
|
+
* Anchor: explicit live-grid edge when supplied, otherwise the config-bound
|
|
804
|
+
* fallback (unresolved -> plain rank). Shelf/manual ids (non-slot-N, e.g.
|
|
805
|
+
* fork-kept deep-* orders below the rail) are never reserves: they would
|
|
806
|
+
* otherwise win the cheapest-first rank and poison the deficit check while
|
|
807
|
+
* the shelf is live (issue #27 follow-up). No-op upstream (grids only mint
|
|
808
|
+
* slot-N).
|
|
809
|
+
*
|
|
810
|
+
* @param {Array<Object>} allSlots - All grid slots (need id/price/type)
|
|
811
|
+
* @param {Object} config - Bot configuration (reserve count source)
|
|
812
|
+
* @param {string} orderType - ORDER_TYPES.BUY (floor) or SELL (ceiling)
|
|
813
|
+
* @param {number|null} [anchorPrice] - Explicit edge anchor (live grid edge);
|
|
814
|
+
* callers that picked slots must pass the SAME anchor so no-crawl
|
|
815
|
+
* classification matches placement. NB: null/undefined falls back to the
|
|
816
|
+
* config-bound anchor (unresolved -> plain rank) — unlike
|
|
817
|
+
* selectReserveEdgeSlots, where null alone means plain rank.
|
|
818
|
+
* @param {Set<string>|null} [excludeIds] - Windowed ids to skip (same set the
|
|
819
|
+
* placement pickers exclude). Window + edge are additive in every target
|
|
820
|
+
* (order counts, fees, hold-back), so a window that reaches the grid edge
|
|
821
|
+
* (e.g. a keep-low window sitting on the floor) must not let the edge pick
|
|
822
|
+
* land on window members — otherwise counting reads N/N with zero
|
|
823
|
+
* dedicated reserves and the deficit never fires (issue #27 follow-up).
|
|
824
|
+
* @returns {Set<string>|null} Edge slot ids, or null when side disabled
|
|
825
|
+
*/
|
|
826
|
+
declare function reserveEdgeIdSet(allSlots: any, config: any, orderType: any, anchorPrice?: unknown, excludeIds?: Set<string> | null): Set<string> | null;
|
|
827
|
+
/**
|
|
828
|
+
* Window member ids for one side, mirroring the window every placement
|
|
829
|
+
* picker excludes from its reserve pick: in-rail slots of the side (geometry
|
|
830
|
+
* via resolveGapBand/isSlotInRail — the same source the reconcile pickers
|
|
831
|
+
* use), ordered closest to market first (buys: highest price first; sells:
|
|
832
|
+
* lowest first), sliced to the configured activeOrders count. The slice runs
|
|
833
|
+
* over the FULL master rail, not just live orders — window membership is
|
|
834
|
+
* geometric (a virtual hole inside the window still blocks the reserve pick
|
|
835
|
+
* there), so live-only slices would misclassify live reserves as window
|
|
836
|
+
* members whenever the window itself is under-filled.
|
|
837
|
+
*
|
|
838
|
+
* Returns null when the boundary geometry is unknown: the pickers cannot
|
|
839
|
+
* place reserves without it either, so callers fail open (no exclusion)
|
|
840
|
+
* and keep their previous classification instead of guessing.
|
|
841
|
+
*
|
|
842
|
+
* @param {any} manager - OrderManager (orders Map, config, boundaryIdx)
|
|
843
|
+
* @param {string} orderType - ORDER_TYPES.BUY or ORDER_TYPES.SELL
|
|
844
|
+
* @returns {Set<string>|null} Window slot ids, or null when geometry unknown
|
|
845
|
+
*/
|
|
846
|
+
declare function liveWindowIdSet(manager: any, orderType: any): Set<string> | null;
|
|
847
|
+
/**
|
|
848
|
+
* Refill-slot wire for the COW boundary hold (single source for both plan
|
|
849
|
+
* producers: the fill-driven COW engine and the divergence fold).
|
|
850
|
+
*
|
|
851
|
+
* The hold keeps the committed boundary when a listed refill is guard-skipped
|
|
852
|
+
* at broadcast — the refill is what justified the plan's boundary shift, so
|
|
853
|
+
* committing the shift without it would strand an empty rail slot past the
|
|
854
|
+
* new boundary. The wire must therefore list only placements that justify the
|
|
855
|
+
* shift:
|
|
856
|
+
*
|
|
857
|
+
* - CREATE ids of the plan (the slots a fold did not convert into an
|
|
858
|
+
* UPDATE), minus
|
|
859
|
+
* - reserve-ladder ids. Reserves are static edge insurance; their fills
|
|
860
|
+
* never crawl (deriveTargetBoundary filters them), so a guard-skipped
|
|
861
|
+
* reserve must not pin geometry either. Without this exclusion a reserve
|
|
862
|
+
* CREATE skipped at the wrong moment (e.g. a floor BUY above the last-fill
|
|
863
|
+
* pivot while the market dumps below the grid) would hold the boundary for
|
|
864
|
+
* a cycle although nothing was stranded.
|
|
865
|
+
*
|
|
866
|
+
* Absent/disabled reserves or an empty action list yield the plain CREATE ids,
|
|
867
|
+
* so callers that never configured reserves keep the previous behavior.
|
|
868
|
+
*
|
|
869
|
+
* @param {Array<Object>} actions - Optimized COW actions
|
|
870
|
+
* @param {Object} [options]
|
|
871
|
+
* @param {Object} [options.config] - Bot configuration (reserve count source)
|
|
872
|
+
* @param {Iterable<Object>} [options.slots] - Master slots (reserve classification)
|
|
873
|
+
* @param {{buy?: number|null, sell?: number|null}} [options.edgeAnchors] - Live
|
|
874
|
+
* edge anchors (same pair the strategy classifies reserve fills against)
|
|
875
|
+
* @returns {string[]} Refill slot ids (CREATE ids minus reserve edge ids)
|
|
876
|
+
*/
|
|
877
|
+
declare function collectRefillSlotIds(actions: any, options?: {
|
|
878
|
+
config?: any;
|
|
879
|
+
slots?: any;
|
|
880
|
+
edgeAnchors?: {
|
|
881
|
+
buy?: number | null;
|
|
882
|
+
sell?: number | null;
|
|
883
|
+
} | null;
|
|
884
|
+
}): string[];
|
|
885
|
+
/**
|
|
886
|
+
* Resolved bound anchor for reserve edges from CONFIG alone.
|
|
887
|
+
* BUY floor anchors toward minPrice (dip-insurance end), SELL ceiling toward
|
|
888
|
+
* maxPrice (spike-insurance end). Resolves numeric and "Nx" relative forms
|
|
889
|
+
* via resolveConfiguredPriceBound (startPrice-referenced); falls back to the
|
|
890
|
+
* raw numeric bound. Returns null when unresolvable.
|
|
891
|
+
*
|
|
892
|
+
* Known limit: this is the statically resolved config bound, not the
|
|
893
|
+
* gridPrice/AMA-referenced live rail bound. Placement call sites should use
|
|
894
|
+
* resolveLiveReserveEdgeAnchorPrice(manager, side), which prefers the live
|
|
895
|
+
* grid geometry and only falls back to this function.
|
|
896
|
+
*
|
|
897
|
+
* @param {Object} config - Bot configuration
|
|
898
|
+
* @param {string} side - 'buy' or 'sell'
|
|
899
|
+
* @returns {number|null} Finite anchor price, or null
|
|
900
|
+
*/
|
|
901
|
+
declare function resolveReserveEdgeAnchorPrice(config: any, side: any): number | null;
|
|
902
|
+
/** Manager surface the live reserve-edge anchor reads (structural view). */
|
|
903
|
+
type ReserveEdgeAnchorManager = {
|
|
904
|
+
_genesis?: {
|
|
905
|
+
priceLevels?: readonly unknown[];
|
|
906
|
+
} | null;
|
|
907
|
+
orders?: {
|
|
908
|
+
values(): Iterable<unknown>;
|
|
909
|
+
} | null;
|
|
910
|
+
boundaryIdx?: unknown;
|
|
911
|
+
_gapSlots?: unknown;
|
|
912
|
+
config?: unknown;
|
|
913
|
+
};
|
|
914
|
+
/**
|
|
915
|
+
* Live-grid reserve edge anchor (single source for edge placement).
|
|
916
|
+
*
|
|
917
|
+
* The anchor must come from the geometry the bot is actually trading, never
|
|
918
|
+
* from a config value that can be a mode string ("pool"/"book"), a relative
|
|
919
|
+
* multiplier, or a stale bound. Tiers, strongest first:
|
|
920
|
+
*
|
|
921
|
+
* 1. Genesis ladder extreme — `_genesis.priceLevels` is the exact ladder the
|
|
922
|
+
* loaded grid was built from: sorted ascending, index-aligned with
|
|
923
|
+
* `slot-<idx>` (assertSlotPriceInvariant), refreshed by initializeGrid,
|
|
924
|
+
* persisted with the grid, and unaffected by the raw-profile re-merge a
|
|
925
|
+
* resync performs. Slot 0 is always on the buy rail and the last level
|
|
926
|
+
* always on the sell rail, so the ladder extremes are the live rail
|
|
927
|
+
* bounds.
|
|
928
|
+
* 2. Live in-rail extreme of the master grid — geometry-only rail
|
|
929
|
+
* membership (resolveGapBand + isSlotInRail, the same predicate the
|
|
930
|
+
* selectors use) for snapshots without a genesis.
|
|
931
|
+
* 3. Config bound (resolveReserveEdgeAnchorPrice) — the previous behavior,
|
|
932
|
+
* kept as the last resolved tier.
|
|
933
|
+
* 4. null — callers keep the legacy rank-based selection.
|
|
934
|
+
*
|
|
935
|
+
* @param {Object} manager - OrderManager (needs _genesis, orders, boundary)
|
|
936
|
+
* @param {string} side - 'buy' or 'sell'
|
|
937
|
+
* @returns {number|null} Finite anchor price, or null
|
|
938
|
+
*/
|
|
939
|
+
declare function resolveLiveReserveEdgeAnchorPrice(manager: ReserveEdgeAnchorManager | null | undefined, side: unknown): number | null;
|
|
940
|
+
/**
|
|
941
|
+
* Shared anchored edge comparator for reserve selection (single source).
|
|
942
|
+
* With a finite anchor: in-bound slots first, nearest the anchor first
|
|
943
|
+
* (floor ascending, ceiling descending); stale out-of-bound slots last,
|
|
944
|
+
* still nearest the anchor first. Without one: plain rank fallback
|
|
945
|
+
* (floor rank-lowest, ceiling rank-highest).
|
|
946
|
+
*
|
|
947
|
+
* @param {Object} a - Slot/order (needs price)
|
|
948
|
+
* @param {Object} b - Slot/order (needs price)
|
|
949
|
+
* @param {string} edge - 'floor' or 'ceiling'
|
|
950
|
+
* @param {number|null} anchorPrice - Resolved bound anchor (null = rank fallback)
|
|
951
|
+
* @returns {number} Comparator result for Array.prototype.sort
|
|
952
|
+
*/
|
|
953
|
+
declare function compareReserveEdge(a: any, b: any, edge: any, anchorPrice: any): number;
|
|
954
|
+
/**
|
|
955
|
+
* Central edge selector: take reserve slots from a price-ascending list,
|
|
956
|
+
* skipping already-windowed ids. Both edges anchor at the live grid's own
|
|
957
|
+
* edge (resolveLiveReserveEdgeAnchorPrice) when finite — floor: nearest
|
|
958
|
+
* at/above the live floor first, slots below it rank last; ceiling: nearest
|
|
959
|
+
* at/below the live ceiling first, slots above it rank last. Anchoring to the
|
|
960
|
+
* live edge keeps the reserve on genuine live-rail slots when the grid still
|
|
961
|
+
* carries leftovers from an older bound or the configured bound disagrees
|
|
962
|
+
* with the geometry being traded. Callers pre-filter rail/type and apply
|
|
963
|
+
* their own size gates; this only picks positions. A null anchor degrades to
|
|
964
|
+
* plain rank (floor: lowest first; ceiling: highest first).
|
|
965
|
+
*
|
|
966
|
+
* @param {Array<Object>} sortedAsc - Slots sorted by price ascending
|
|
967
|
+
* @param {number} count - Reserve count
|
|
968
|
+
* @param {Set<string>|null} excludeIds - Windowed ids to skip
|
|
969
|
+
* @param {string} edge - 'floor' or 'ceiling'
|
|
970
|
+
* @param {number|null} [anchorPrice] - Live edge anchor for the side (null = rank-based)
|
|
971
|
+
* @returns {Array<Object>} Reserve slots (ascending for floor, descending for ceiling)
|
|
972
|
+
*/
|
|
973
|
+
declare function selectReserveEdgeSlots(sortedAsc: any, count: any, excludeIds: any, edge: any, anchorPrice?: any): any[];
|
|
744
974
|
/**
|
|
745
975
|
* Total target order count across both sides (used for BTS fee calculation).
|
|
746
976
|
* Single source of truth so every budget derivation sizes identically.
|
|
977
|
+
* Includes per-side reserves: they rest live on-chain and pay creation fees.
|
|
747
978
|
*
|
|
748
979
|
* @param {Object} config - Bot configuration
|
|
749
980
|
* @returns {number} Total target order count
|
|
@@ -771,5 +1002,54 @@ declare function getSideBudget(side: any, funds: any, config: any, totalTarget:
|
|
|
771
1002
|
* @returns {Array} Array of calculated sizes
|
|
772
1003
|
*/
|
|
773
1004
|
declare function calculateBudgetedSizes(slots: any, side: any, budget: any, weightDist: any, incrementPercent: any, assets: any): any[];
|
|
774
|
-
|
|
1005
|
+
/**
|
|
1006
|
+
* Whether a chain order still matches the cached pre-update state the
|
|
1007
|
+
* limit_order_update delta was built from. Only a provably-unchanged order
|
|
1008
|
+
* makes a re-broadcast of the identical delta safe (it applies to the same
|
|
1009
|
+
* base). Any other state (target applied, filled, resized) must defer.
|
|
1010
|
+
* @param {Object} chainOrder - Raw chain order object (get_full_accounts)
|
|
1011
|
+
* @param {Object|null} cachedRaw - The rawOnChain cache captured at build time
|
|
1012
|
+
* @returns {boolean}
|
|
1013
|
+
*/
|
|
1014
|
+
declare function chainOrderUnchangedFromCache(chainOrder: any, cachedRaw: any): boolean;
|
|
1015
|
+
/**
|
|
1016
|
+
* PRE-BROADCAST CROSSED-BOOK ASSERT (defense-in-depth, any-writer detection).
|
|
1017
|
+
*
|
|
1018
|
+
* Simulates the post-batch book: currently placed master orders plus this
|
|
1019
|
+
* batch's action overlay (CREATEs add, CANCELs remove, UPDATEs reprice/move).
|
|
1020
|
+
* Returns a detail string when a planned BUY would price at-or-above a planned
|
|
1021
|
+
* SELL — a state no honest planner produces — so the caller can refuse the
|
|
1022
|
+
* broadcast instead of paying for adverse fills. Placed order prices are
|
|
1023
|
+
* independent of grid geometry, so this catches boundary overruns regardless
|
|
1024
|
+
* of which writer produced them.
|
|
1025
|
+
*
|
|
1026
|
+
* Detector only: any internal failure returns null (never blocks a broadcast).
|
|
1027
|
+
*/
|
|
1028
|
+
declare function detectCrossedBookPlan(manager: any, actions: any[]): string | null;
|
|
1029
|
+
/**
|
|
1030
|
+
* Collect every on-chain order id master currently needs to converge against,
|
|
1031
|
+
* so adoption can re-read them by id (immune to the get_full_accounts window
|
|
1032
|
+
* truncation) instead of relying on a partial window read.
|
|
1033
|
+
*
|
|
1034
|
+
* Sources:
|
|
1035
|
+
* - master's own tracked order ids (existing on-chain orders);
|
|
1036
|
+
* - the batch's fresh CREATE ids extracted from the broadcast result
|
|
1037
|
+
* (operation_results[i][1] aligns positionally with placedContexts[i]).
|
|
1038
|
+
*
|
|
1039
|
+
* @param {any} mgr - bot.manager
|
|
1040
|
+
* @param {any} placedResults - broadcast result (has operation_results); null when unavailable
|
|
1041
|
+
* @param {any[]} placedContexts - opContexts (aligned with operation_results); null when unavailable
|
|
1042
|
+
* @param {string[]|null} [extraCreateIds=null] - fresh CREATE chain ids from another
|
|
1043
|
+
* authoritative source (e.g. the uncertain-broadcast poll confirmation) when
|
|
1044
|
+
* no broadcast result exists; merged into createIds so the lagging-create
|
|
1045
|
+
* retry guards them
|
|
1046
|
+
* @returns {string[]} Unique, well-formed 1.7.x order ids
|
|
1047
|
+
*/
|
|
1048
|
+
declare function collectKnownOnChainOrderIds(mgr: any, placedResults: any, placedContexts: any, extraCreateIds?: any): {
|
|
1049
|
+
masterIds: string[];
|
|
1050
|
+
createIds: string[];
|
|
1051
|
+
all: string[];
|
|
1052
|
+
};
|
|
1053
|
+
export { parseChainOrder, findMatchingGridOrderByOpenOrder, applyChainSizeToGridOrder, buildFillKey, correctOrderPriceOnChain, correctAllPriceMismatches, buildCreateOrderArgs, getOrderTypeFromUpdatedFlags, resolveConfiguredPriceBound, virtualizeOrder, convertToSpreadPlaceholder, toRailHolePlaceholder, geometryTypeForSlotIndex, detectGapEvacuationCandidates, updateGapEvacuationStreaks, resolveSpreadOrderSide, chainOrderMatchesSlot, chainOrderMatchesSlotWithTolerance, crossingCandidateChainId, isCrossingCheckCandidate, buildCrossingCheckCandidates, parseSlotIndex, filterOrdersByType, buildOutsideInPairGroups, extractBatchOperationResults, formatUnmatchedChainOrder, isNonBlockingUnmatchedOrder, isOrderOnChain, isOrderVirtual, hasOnChainId, isOrderPlaced, isPhantomOrder, isSlotAvailable, isEmptyGridSlot, isOrderHealthy, checkSizeThreshold, checkSizesBeforeMinimum, calculateIdealBoundary, assignGridRoles, resolveOnChainRetypeType, shouldFlagOutOfSpread, buildIndexes, validateIndexes, ordersEqual, buildDelta, deriveTargetBoundary, isShiftEligibleFill, resolveReserveCount, resolveReserveOrders, selectReserveEdgeSlots, getActiveOrdersTotal, getSideBudget, calculateBudgetedSizes, buildCreateOpFingerprint, isOrderGoneErrorMessage, recordDuplicateOrphanDetection, clearDuplicateOrphanDetection, duplicateOrphanLogInfo, chainOrderUnchangedFromCache, detectCrossedBookPlan, collectKnownOnChainOrderIds, reserveEdgeIdSet, liveWindowIdSet };
|
|
1054
|
+
export { resolveReserveEdgeAnchorPrice, resolveLiveReserveEdgeAnchorPrice, compareReserveEdge, collectRefillSlotIds };
|
|
775
1055
|
//# sourceMappingURL=order.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../../modules/order/utils/order.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../../modules/order/utils/order.ts"],"names":[],"mappings":"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"}
|