dexbot 1.1.14 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +1 -0
  2. package/dist/credential-daemon.d.ts.map +1 -1
  3. package/dist/credential-daemon.js +6 -3
  4. package/dist/credential-daemon.js.map +1 -1
  5. package/dist/market_adapter/market_adapter.js +1 -1
  6. package/dist/market_adapter/market_adapter.js.map +1 -1
  7. package/dist/modules/bitshares-native/lru_cache.d.ts +20 -0
  8. package/dist/modules/bitshares-native/lru_cache.d.ts.map +1 -0
  9. package/dist/modules/bitshares-native/lru_cache.js +45 -0
  10. package/dist/modules/bitshares-native/lru_cache.js.map +1 -0
  11. package/dist/modules/bitshares-native/resolvers.d.ts +2 -18
  12. package/dist/modules/bitshares-native/resolvers.d.ts.map +1 -1
  13. package/dist/modules/bitshares-native/resolvers.js +2 -41
  14. package/dist/modules/bitshares-native/resolvers.js.map +1 -1
  15. package/dist/modules/bitshares-native/serial/chain_constants.d.ts +1 -0
  16. package/dist/modules/bitshares-native/serial/chain_constants.d.ts.map +1 -1
  17. package/dist/modules/bitshares-native/serial/chain_constants.js +3 -0
  18. package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -1
  19. package/dist/modules/bitshares-native/signing_client.d.ts.map +1 -1
  20. package/dist/modules/bitshares-native/signing_client.js +12 -1
  21. package/dist/modules/bitshares-native/signing_client.js.map +1 -1
  22. package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
  23. package/dist/modules/bitshares-native/subscriptions.js +42 -3
  24. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  25. package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
  26. package/dist/modules/bitshares-native/transport.js +77 -27
  27. package/dist/modules/bitshares-native/transport.js.map +1 -1
  28. package/dist/modules/bitshares-native/tx/builder.d.ts.map +1 -1
  29. package/dist/modules/bitshares-native/tx/builder.js +26 -16
  30. package/dist/modules/bitshares-native/tx/builder.js.map +1 -1
  31. package/dist/modules/bitshares-native/tx/tx_cache.d.ts +17 -0
  32. package/dist/modules/bitshares-native/tx/tx_cache.d.ts.map +1 -0
  33. package/dist/modules/bitshares-native/tx/tx_cache.js +62 -0
  34. package/dist/modules/bitshares-native/tx/tx_cache.js.map +1 -0
  35. package/dist/modules/bot_settings.d.ts.map +1 -1
  36. package/dist/modules/bot_settings.js +2 -1
  37. package/dist/modules/bot_settings.js.map +1 -1
  38. package/dist/modules/chain_orders.d.ts +4 -1
  39. package/dist/modules/chain_orders.d.ts.map +1 -1
  40. package/dist/modules/chain_orders.js +30 -1
  41. package/dist/modules/chain_orders.js.map +1 -1
  42. package/dist/modules/config.d.ts +6 -0
  43. package/dist/modules/config.d.ts.map +1 -1
  44. package/dist/modules/config.js +11 -0
  45. package/dist/modules/config.js.map +1 -1
  46. package/dist/modules/constants.d.ts +14 -1
  47. package/dist/modules/constants.d.ts.map +1 -1
  48. package/dist/modules/constants.js +64 -6
  49. package/dist/modules/constants.js.map +1 -1
  50. package/dist/modules/credential_policy.d.ts.map +1 -1
  51. package/dist/modules/credential_policy.js +7 -5
  52. package/dist/modules/credential_policy.js.map +1 -1
  53. package/dist/modules/credit_runtime.d.ts.map +1 -1
  54. package/dist/modules/credit_runtime.js +40 -29
  55. package/dist/modules/credit_runtime.js.map +1 -1
  56. package/dist/modules/dexbot_class.d.ts +6 -12
  57. package/dist/modules/dexbot_class.d.ts.map +1 -1
  58. package/dist/modules/dexbot_class.js +155 -81
  59. package/dist/modules/dexbot_class.js.map +1 -1
  60. package/dist/modules/dexbot_maintenance_runtime.d.ts +1 -5
  61. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  62. package/dist/modules/dexbot_maintenance_runtime.js +23 -48
  63. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  64. package/dist/modules/launcher/child_env.d.ts.map +1 -1
  65. package/dist/modules/launcher/child_env.js +1 -0
  66. package/dist/modules/launcher/child_env.js.map +1 -1
  67. package/dist/modules/launcher/launch_modes.d.ts +2 -0
  68. package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
  69. package/dist/modules/launcher/launch_modes.js +7 -6
  70. package/dist/modules/launcher/launch_modes.js.map +1 -1
  71. package/dist/modules/order/accounting.d.ts +8 -2
  72. package/dist/modules/order/accounting.d.ts.map +1 -1
  73. package/dist/modules/order/accounting.js +64 -26
  74. package/dist/modules/order/accounting.js.map +1 -1
  75. package/dist/modules/order/async_lock.d.ts +12 -4
  76. package/dist/modules/order/async_lock.d.ts.map +1 -1
  77. package/dist/modules/order/async_lock.js +27 -5
  78. package/dist/modules/order/async_lock.js.map +1 -1
  79. package/dist/modules/order/grid.d.ts +434 -475
  80. package/dist/modules/order/grid.d.ts.map +1 -1
  81. package/dist/modules/order/grid.js +1612 -1592
  82. package/dist/modules/order/grid.js.map +1 -1
  83. package/dist/modules/order/grid_reconcile.d.ts +3 -73
  84. package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
  85. package/dist/modules/order/grid_reconcile.js +11 -843
  86. package/dist/modules/order/grid_reconcile.js.map +1 -1
  87. package/dist/modules/order/grid_reconcile_internal.d.ts +8 -0
  88. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -0
  89. package/dist/modules/order/grid_reconcile_internal.js +782 -0
  90. package/dist/modules/order/grid_reconcile_internal.js.map +1 -0
  91. package/dist/modules/order/logger.d.ts +1 -1
  92. package/dist/modules/order/logger.d.ts.map +1 -1
  93. package/dist/modules/order/logger.js +26 -2
  94. package/dist/modules/order/logger.js.map +1 -1
  95. package/dist/modules/order/manager.d.ts +118 -15
  96. package/dist/modules/order/manager.d.ts.map +1 -1
  97. package/dist/modules/order/manager.js +206 -236
  98. package/dist/modules/order/manager.js.map +1 -1
  99. package/dist/modules/order/runner.js +2 -2
  100. package/dist/modules/order/runner.js.map +1 -1
  101. package/dist/modules/order/strategy.js +3 -3
  102. package/dist/modules/order/strategy.js.map +1 -1
  103. package/dist/modules/order/sync_engine.d.ts +3 -4
  104. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  105. package/dist/modules/order/sync_engine.js +85 -32
  106. package/dist/modules/order/sync_engine.js.map +1 -1
  107. package/dist/modules/order/utils/order.d.ts +17 -0
  108. package/dist/modules/order/utils/order.d.ts.map +1 -1
  109. package/dist/modules/order/utils/order.js +81 -24
  110. package/dist/modules/order/utils/order.js.map +1 -1
  111. package/dist/modules/order/utils/system.js +4 -4
  112. package/dist/modules/order/utils/system.js.map +1 -1
  113. package/dist/modules/order/utils/validate.d.ts.map +1 -1
  114. package/dist/modules/order/utils/validate.js +6 -8
  115. package/dist/modules/order/utils/validate.js.map +1 -1
  116. package/dist/modules/types.d.ts +7 -12
  117. package/dist/modules/types.d.ts.map +1 -1
  118. package/dist/scripts/print_grid.js +3 -3
  119. package/dist/scripts/print_grid.js.map +1 -1
  120. package/dist/scripts/test-credit-renewal.js +1 -1
  121. package/dist/scripts/test-credit-renewal.js.map +1 -1
  122. package/dist/unlock.d.ts.map +1 -1
  123. package/dist/unlock.js +26 -12
  124. package/dist/unlock.js.map +1 -1
  125. package/package.json +1 -1
@@ -19,7 +19,7 @@ function stripUnlockFlags(args) {
19
19
  const result = [];
20
20
  for (let i = 0; i < args.length; i++) {
21
21
  const a = args[i];
22
- if (a === '--headless' || a === '--isolated' || a === '--dryrun' || a === '--foreground' || a === 'claw-only' || a === '--claw-only') {
22
+ if (a === '--headless' || a === '--isolated' || a === '--dryrun' || a === '--foreground' || a === 'claw-only' || a === '--claw-only' || a === 'credit' || a === '--credit') {
23
23
  continue;
24
24
  }
25
25
  if (a === '--password-file') {
@@ -38,6 +38,7 @@ function stripUnlockFlags(args) {
38
38
  function parseUnlockArgs(argv = process.argv) {
39
39
  const args = argv.slice(2);
40
40
  const clawOnly = args.includes('--claw-only') || args.includes('claw-only');
41
+ const creditOnly = args.includes('--credit') || args.includes('credit');
41
42
  const isolated = args.includes('--isolated');
42
43
  const dryrun = args.includes('--dryrun');
43
44
  const headless = args.includes('--headless');
@@ -46,10 +47,7 @@ function parseUnlockArgs(argv = process.argv) {
46
47
  if (positionalArgs[0] && CONTROL_COMMANDS.has(positionalArgs[0])) {
47
48
  let cmd = positionalArgs[0];
48
49
  const target = positionalArgs[1] || null;
49
- // Normalize whole-runtime controls:
50
- // restart, restart all -> restart-all
51
- // stop, stop all -> stop-all
52
- // Keep stop/restart <botName> for isolated per-bot control.
50
+ // Normalize whole-runtime controls: restart/stop (no target or 'all') → *-all
53
51
  const consumedAll = (cmd === 'restart' || cmd === 'stop') && (!target || target === 'all');
54
52
  if (consumedAll) {
55
53
  cmd += '-all';
@@ -57,6 +55,7 @@ function parseUnlockArgs(argv = process.argv) {
57
55
  return {
58
56
  botName: null,
59
57
  clawOnly: false,
58
+ creditOnly: false,
60
59
  isolated: false,
61
60
  dryrun: false,
62
61
  headless: false,
@@ -64,9 +63,11 @@ function parseUnlockArgs(argv = process.argv) {
64
63
  control: { cmd, target: consumedAll ? null : target },
65
64
  };
66
65
  }
66
+ const resolvedBotName = findFirstPositionalArg(positionalArgs) || Config.BOT_NAME || null;
67
67
  return {
68
- botName: clawOnly ? null : findFirstPositionalArg(positionalArgs) || Config.BOT_NAME || null,
68
+ botName: resolvedBotName,
69
69
  clawOnly,
70
+ creditOnly,
70
71
  isolated,
71
72
  dryrun,
72
73
  headless,
@@ -1 +1 @@
1
- {"version":3,"file":"launch_modes.js","sourceRoot":"","sources":["../../../modules/launcher/launch_modes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch_modes.js","sourceRoot":"","sources":["../../../modules/launcher/launch_modes.ts"],"names":[],"mappings":"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"}
@@ -225,9 +225,15 @@ declare class Accountant {
225
225
  * @param {string} orderType - ORDER_TYPES.BUY or ORDER_TYPES.SELL
226
226
  * @param {number} size - Amount to deduct from chainFree
227
227
  * @param {string} [operation='move'] - Label for logging
228
- * @returns {Promise<boolean>} true if deduction succeeded, false if insufficient funds
228
+ * @returns {Promise<{ok: boolean, reason?: string}>} {ok: true} on success, {ok: false, reason} on failure
229
229
  */
230
- tryDeductFromChainFree(orderType: any, size: any, operation?: string): Promise<boolean>;
230
+ tryDeductFromChainFree(orderType: any, size: any, operation?: string): Promise<{
231
+ ok: boolean;
232
+ reason: string;
233
+ } | {
234
+ ok: boolean;
235
+ reason?: undefined;
236
+ }>;
231
237
  /**
232
238
  * Add an amount back to the optimistic chainFree balance (FREE portion only).
233
239
  * PRIVATE: Must be called while holding _fundLock.
@@ -1 +1 @@
1
- {"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../../../modules/order/accounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../../../modules/order/accounting.ts"],"names":[],"mappings":"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"}
@@ -352,8 +352,8 @@ class Accountant {
352
352
  // - SPREAD type: derive from price relation to startPrice (market midpoint)
353
353
  // * price < startPrice → BUY side (lower prices are bids)
354
354
  // * price >= startPrice → SELL side (higher prices are asks)
355
- const isBuy = order.type === ORDER_TYPES.BUY || (order.type === ORDER_TYPES.SPREAD && order.price < mgr.startPrice);
356
- const isSell = order.type === ORDER_TYPES.SELL || (order.type === ORDER_TYPES.SPREAD && order.price >= mgr.startPrice);
355
+ const isBuy = order.type === ORDER_TYPES.BUY || (order.type === ORDER_TYPES.SPREAD && order.price < mgr.config.startPrice);
356
+ const isSell = order.type === ORDER_TYPES.SELL || (order.type === ORDER_TYPES.SPREAD && order.price >= mgr.config.startPrice);
357
357
  if (isBuy) {
358
358
  if (isActive) {
359
359
  gridBuy += size;
@@ -400,7 +400,7 @@ class Accountant {
400
400
  mgr.logger.log(`[RECALC] SELL: Total=${Format.formatAmountByPrecision(chainTotalSell, sellPrecision)} (Free=${Format.formatAmountByPrecision(chainFreeSell, sellPrecision)}, Grid=${Format.formatAmountByPrecision(gridSell, sellPrecision)})`, 'debug');
401
401
  }
402
402
  }
403
- if (mgr._pauseFundRecalc === 0 && !mgr._state.isBootstrapping() && !mgr._state.isBroadcastingActive()) {
403
+ if (mgr._pauseFundRecalc === 0 && !mgr.isBootstrapping() && !mgr.isBroadcastingActive()) {
404
404
  const snapshot = { chainFreeBuy, chainFreeSell, chainBuy, chainSell };
405
405
  const runVerification = (nextSnapshot) => {
406
406
  this._isVerifyingInvariants = true;
@@ -417,6 +417,9 @@ class Accountant {
417
417
  }
418
418
  });
419
419
  };
420
+ // Deliberate: only the last pending snapshot runs. Intermediate snapshots
421
+ // that self-correct within consecutive recalc calls are transient fluctuations,
422
+ // not systemic drift. Running all snapshots in sequence would queue unboundedly.
420
423
  if (this._isVerifyingInvariants) {
421
424
  this._pendingInvariantSnapshot = snapshot;
422
425
  }
@@ -454,11 +457,13 @@ class Accountant {
454
457
  // chainFree (sellFree/buyFree) from the last fetchAccountTotals call
455
458
  // may not yet reflect the proceeds. Widen tolerance to prevent false-
456
459
  // positive violations that trigger unproductive recovery cycles.
457
- // The timestamp is self-clearing: consumed by this check, re-set by
458
- // the next orphan-fill credit, and also cleared by
459
- // _performStateRecovery.
460
+ // The timestamp is set at orphan-fill credit time and cleared by
461
+ // _performStateRecovery (after a fresh chain fetch) or at the start
462
+ // of the next fill cycle (_orphanFillsCreditedAt = null). It is NOT
463
+ // consumed by this check — the widened tolerance persists through the
464
+ // entire fill cycle so that multiple recalculateFunds calls within
465
+ // the same cycle all see consistent tolerance.
460
466
  const orphanFillsAt = mgr._orphanFillsCreditedAt;
461
- mgr._orphanFillsCreditedAt = null; // consume
462
467
  const orphanToleranceMultiplier = (orphanFillsAt != null) ? 5 : 1;
463
468
  const effectivePercentTolerance = PERCENT_TOLERANCE * orphanToleranceMultiplier;
464
469
  let hasViolation = false;
@@ -579,7 +584,7 @@ class Accountant {
579
584
  // from chain. During this pass we only want to reconcile grid structure/order
580
585
  // mapping against open orders; re-applying optimistic accounting deltas here
581
586
  // double-counts commitment changes and can amplify invariant drift.
582
- const syncResult = await mgr.syncFromOpenOrders(openOrders, { skipAccounting: true, fillLockAlreadyHeld: true, protectCommittedOrders: true });
587
+ const syncResult = await mgr.syncFromOpenOrders(openOrders, { skipAccounting: true });
583
588
  const unmatchedChainOrders = Array.isArray(syncResult?.unmatchedChainOrders)
584
589
  ? syncResult.unmatchedChainOrders
585
590
  : [];
@@ -754,25 +759,37 @@ class Accountant {
754
759
  * @param {string} orderType - ORDER_TYPES.BUY or ORDER_TYPES.SELL
755
760
  * @param {number} size - Amount to deduct from chainFree
756
761
  * @param {string} [operation='move'] - Label for logging
757
- * @returns {Promise<boolean>} true if deduction succeeded, false if insufficient funds
762
+ * @returns {Promise<{ok: boolean, reason?: string}>} {ok: true} on success, {ok: false, reason} on failure
758
763
  */
759
764
  async tryDeductFromChainFree(orderType, size, operation = 'move') {
760
765
  const mgr = this.manager;
761
766
  const isBuy = orderType === ORDER_TYPES.BUY;
762
767
  const key = isBuy ? 'buyFree' : 'sellFree';
763
- if (!mgr.accountTotals || mgr.accountTotals[key] === undefined)
764
- return false;
768
+ if (!mgr.accountTotals || mgr.accountTotals[key] === undefined) {
769
+ return { ok: false, reason: 'undefined' };
770
+ }
771
+ // Stale-fetch guard: if accountTotals was fetched too long ago, refuse
772
+ // optimistic deduction and force the caller to re-fetch. This prevents
773
+ // optimistic balance drift from diverging too far from chain reality
774
+ // between periodic blockchain fetches.
775
+ const MAX_ACCOUNT_TOTALS_AGE_MS = require('../constants').TIMING.MAX_ACCOUNT_TOTALS_AGE_MS;
776
+ const lastFetched = mgr.accountTotals._lastFetchedAt || 0;
777
+ if (Date.now() - lastFetched > MAX_ACCOUNT_TOTALS_AGE_MS) {
778
+ mgr.logger.log(`[chainFree] ${orderType} ${operation}: STALE accountTotals (age=${Date.now() - lastFetched}ms > ${MAX_ACCOUNT_TOTALS_AGE_MS}ms). ` +
779
+ `Skipping optimistic deduction; caller should re-fetch.`, 'warn');
780
+ return { ok: false, reason: 'stale' };
781
+ }
765
782
  const current = toFiniteNumber(mgr.accountTotals[key]);
766
783
  if (current < size) {
767
784
  mgr.logger.log(`[chainFree] ${orderType} ${operation}: INSUFFICIENT FUNDS (have ${Format.formatAmount8(current)}, need ${Format.formatAmount8(size)})`, 'warn');
768
- return false;
785
+ return { ok: false, reason: 'insufficient' };
769
786
  }
770
787
  const oldValue = mgr.accountTotals[key];
771
788
  mgr.accountTotals[key] = Math.max(0, current - size);
772
789
  if (mgr.logger && mgr.logger.level === 'debug') {
773
790
  mgr.logger.log(`[ACCOUNTING] ${key} -${Format.formatAmount8(size)} (${operation}) -> ${Format.formatAmount8(mgr.accountTotals[key])} (was ${Format.formatAmount8(oldValue)})`, 'debug');
774
791
  }
775
- return true;
792
+ return { ok: true };
776
793
  }
777
794
  /**
778
795
  * Add an amount back to the optimistic chainFree balance (FREE portion only).
@@ -937,27 +954,48 @@ class Accountant {
937
954
  if (commitmentDelta > 0) {
938
955
  // Lock capital: move from Free to Committed
939
956
  const commitmentSide = newSideType || newOrder.type;
940
- const deducted = await this.tryDeductFromChainFree(commitmentSide, commitmentDelta, `${context}`);
941
- if (!deducted) {
957
+ const result = await this.tryDeductFromChainFree(commitmentSide, commitmentDelta, `${context}`);
958
+ if (!result.ok) {
942
959
  const failure = {
943
- code: 'ACCOUNTING_COMMITMENT_FAILED',
960
+ code: result.reason === 'stale' ? 'ACCOUNTING_STALE_ACCOUNT_TOTALS' : 'ACCOUNTING_COMMITMENT_FAILED',
944
961
  side: commitmentSide,
945
962
  amount: commitmentDelta,
946
963
  context,
964
+ reason: result.reason,
947
965
  at: Date.now()
948
966
  };
949
967
  mgr._lastAccountingFailure = failure;
950
- mgr.logger?.log?.(`[ACCOUNTING] CRITICAL: Failed to lock ${Format.formatAmount8(commitmentDelta)} for ${commitmentSide} during ${context}. Scheduling recovery.`, 'error');
951
- if (mgr._throwOnIllegalState) {
952
- const err = new Error(`CRITICAL ACCOUNTING STATE: failed to lock ${Format.formatAmount8(commitmentDelta)} ${commitmentSide} during ${context}`);
953
- err.code = 'ACCOUNTING_COMMITMENT_FAILED';
954
- throw err;
968
+ if (result.reason === 'stale') {
969
+ mgr.logger?.log?.(`[ACCOUNTING] Stale accountTotals: skipping optimistic lock of ${Format.formatAmount8(commitmentDelta)} for ${commitmentSide} during ${context}. Recovery scheduled.`, 'warn');
970
+ // Schedule recovery but DON'T throw — staleness is transient.
971
+ // The batch already confirmed on-chain; aborting the commit
972
+ // would orphan a successful broadcast from the grid state.
973
+ }
974
+ else {
975
+ mgr.logger?.log?.(`[ACCOUNTING] CRITICAL: Failed to lock ${Format.formatAmount8(commitmentDelta)} for ${commitmentSide} during ${context}. Scheduling recovery.`, 'error');
976
+ if (mgr._throwOnIllegalState) {
977
+ const err = new Error(`CRITICAL ACCOUNTING STATE: failed to lock ${Format.formatAmount8(commitmentDelta)} ${commitmentSide} during ${context}`);
978
+ err.code = 'ACCOUNTING_COMMITMENT_FAILED';
979
+ throw err;
980
+ }
981
+ }
982
+ // Promote recovery from fire-and-forget to a stored promise.
983
+ // Subsequent callers can await the in-flight recovery before
984
+ // attempting new deductions, reducing redundant recovery cycles.
985
+ if (!mgr._pendingRecovery) {
986
+ mgr._pendingRecovery = this._attemptFundRecovery(mgr, 'Optimistic commitment deduction failure')
987
+ .catch(err => {
988
+ mgr.logger?.log?.(`[RECOVERY] Immediate recovery scheduling failed: ${err.message}`, 'error');
989
+ mgr._recoveryState = mgr._recoveryState || {};
990
+ mgr._recoveryState.lastFailureAt = Date.now();
991
+ })
992
+ .finally(() => {
993
+ mgr._pendingRecovery = null;
994
+ });
995
+ }
996
+ else {
997
+ mgr.logger?.log?.(`[ACCOUNTING] Recovery already in-flight; waiting for existing recovery to complete before retry deduction of ${Format.formatAmount8(commitmentDelta)} for ${commitmentSide}`, 'warn');
955
998
  }
956
- this._attemptFundRecovery(mgr, 'Optimistic commitment deduction failure').catch(err => {
957
- mgr.logger?.log?.(`[RECOVERY] Immediate recovery scheduling failed: ${err.message}`, 'error');
958
- mgr._recoveryState = mgr._recoveryState || {};
959
- mgr._recoveryState.lastFailureAt = Date.now();
960
- });
961
999
  }
962
1000
  }
963
1001
  else if (commitmentDelta < 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"accounting.js","sourceRoot":"","sources":["../../../modules/order/accounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accounting.js","sourceRoot":"","sources":["../../../modules/order/accounting.ts"],"names":[],"mappings":"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"}
@@ -59,10 +59,11 @@
59
59
  * 3. Execute callback (guaranteed alone)
60
60
  * 4. Set _locked = false and process next queued item
61
61
  *
62
- * REENTRANCY WARNING:
63
- * This lock is NOT reentrant. If a function holding the lock attempts to
64
- * acquire it again (nested call), it will DEADLOCK as the second request
65
- * will wait forever in the queue for the first one to release it.
62
+ * REENTRANCY:
63
+ * This lock IS reentrant. If a function holding the lock calls acquire()
64
+ * again (nested call), the callback is executed immediately without
65
+ * queueing. This eliminates the need for callers to track whether they
66
+ * already hold the lock via external flags.
66
67
  *
67
68
  * CRITICAL INVARIANTS:
68
69
  * - _locked = true ONLY if callback is currently executing
@@ -88,6 +89,7 @@ interface AcquireOptions {
88
89
  declare class AsyncLock {
89
90
  private _queue;
90
91
  private _locked;
92
+ private _holding;
91
93
  private _generation;
92
94
  private _defaultTimeout;
93
95
  private _level;
@@ -111,6 +113,12 @@ declare class AsyncLock {
111
113
  * @returns {boolean}
112
114
  */
113
115
  isLocked(): boolean;
116
+ /**
117
+ * Check if the current execution context already holds this lock.
118
+ * When true, callers can skip lock acquisition because the callback
119
+ * would execute immediately via the re-entrant path anyway.
120
+ */
121
+ isReentrant(): boolean;
114
122
  /**
115
123
  * Get number of operations waiting for lock
116
124
  * @returns {number}
@@ -1 +1 @@
1
- {"version":3,"file":"async_lock.d.ts","sourceRoot":"","sources":["../../../modules/order/async_lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AAUH,UAAU,gBAAgB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,SAAS;IACX,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,gBAAqB;IAQ1C;;;;;;;OAOG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAyCtF;;;OAGG;YACW,aAAa;IAuC3B;;;OAGG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,UAAU,IAAI,MAAM;IASpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,IAAI,MAAM;CAazB;AAED,SAAS,SAAS,CAAC"}
1
+ {"version":3,"file":"async_lock.d.ts","sourceRoot":"","sources":["../../../modules/order/async_lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAUH,UAAU,gBAAgB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,SAAS;IACX,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,gBAAqB;IAS1C;;;;;;;OAOG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAgDtF;;;OAGG;YACW,aAAa;IAyC3B;;;OAGG;IACH,QAAQ,IAAI,OAAO;IAInB;;;;OAIG;IACH,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,UAAU,IAAI,MAAM;IASpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,IAAI,MAAM;CAezB;AAED,SAAS,SAAS,CAAC"}
@@ -60,10 +60,11 @@
60
60
  * 3. Execute callback (guaranteed alone)
61
61
  * 4. Set _locked = false and process next queued item
62
62
  *
63
- * REENTRANCY WARNING:
64
- * This lock is NOT reentrant. If a function holding the lock attempts to
65
- * acquire it again (nested call), it will DEADLOCK as the second request
66
- * will wait forever in the queue for the first one to release it.
63
+ * REENTRANCY:
64
+ * This lock IS reentrant. If a function holding the lock calls acquire()
65
+ * again (nested call), the callback is executed immediately without
66
+ * queueing. This eliminates the need for callers to track whether they
67
+ * already hold the lock via external flags.
67
68
  *
68
69
  * CRITICAL INVARIANTS:
69
70
  * - _locked = true ONLY if callback is currently executing
@@ -78,12 +79,14 @@
78
79
  class AsyncLock {
79
80
  _queue;
80
81
  _locked;
82
+ _holding;
81
83
  _generation;
82
84
  _defaultTimeout;
83
85
  _level;
84
86
  constructor(options = {}) {
85
87
  this._queue = [];
86
88
  this._locked = false;
89
+ this._holding = false;
87
90
  this._generation = 0;
88
91
  this._defaultTimeout = options.timeout || null;
89
92
  this._level = options.level ?? 0;
@@ -97,6 +100,12 @@ class AsyncLock {
97
100
  * @returns {Promise} Result of callback execution
98
101
  */
99
102
  async acquire(callback, options = {}) {
103
+ // Re-entrant: if we are already inside this lock's execution context,
104
+ // run the callback directly. This avoids deadlock when callers deep
105
+ // in the call chain need to acquire the same lock.
106
+ if (this._holding) {
107
+ return callback();
108
+ }
100
109
  const timeout = options.timeout || this._defaultTimeout;
101
110
  const cancelToken = options.cancelToken;
102
111
  return new Promise((resolve, reject) => {
@@ -152,6 +161,7 @@ class AsyncLock {
152
161
  return this._processQueue();
153
162
  }
154
163
  const generation = ++this._generation;
164
+ this._holding = true;
155
165
  try {
156
166
  // Execute the callback (guaranteed to be alone)
157
167
  const result = await callback();
@@ -161,6 +171,7 @@ class AsyncLock {
161
171
  reject(err);
162
172
  }
163
173
  finally {
174
+ this._holding = false;
164
175
  // Only release the lock if generation matches — if forceRelease
165
176
  // was called while this callback was running, the generation was
166
177
  // incremented and we must not touch _locked (a new acquirer may
@@ -178,6 +189,14 @@ class AsyncLock {
178
189
  isLocked() {
179
190
  return this._locked;
180
191
  }
192
+ /**
193
+ * Check if the current execution context already holds this lock.
194
+ * When true, callers can skip lock acquisition because the callback
195
+ * would execute immediately via the re-entrant path anyway.
196
+ */
197
+ isReentrant() {
198
+ return this._holding;
199
+ }
181
200
  /**
182
201
  * Get number of operations waiting for lock
183
202
  * @returns {number}
@@ -223,8 +242,11 @@ class AsyncLock {
223
242
  // finally block — it will see generation mismatch and skip
224
243
  // touching _locked / _processQueue.
225
244
  this._generation++;
245
+ this._holding = false;
226
246
  while (this._queue.length > 0) {
227
- const { reject } = this._queue.shift();
247
+ const { reject, timer } = this._queue.shift();
248
+ if (timer)
249
+ clearTimeout(timer);
228
250
  reject(new Error('Lock force-released'));
229
251
  }
230
252
  this._locked = false;