dexbot 1.4.5 → 1.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/bots_file_lock.d.ts +4 -4
- package/dist/modules/bots_file_lock.d.ts.map +1 -1
- package/dist/modules/bots_file_lock.js +16 -53
- package/dist/modules/bots_file_lock.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +10 -10
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +18 -8
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +4 -5
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +2 -2
- package/dist/modules/dexbot_maintenance_runtime.js +6 -6
- 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 +1 -0
- package/dist/modules/dexbot_startup_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +2 -2
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/order/async_lock.d.ts +5 -3
- package/dist/modules/order/async_lock.d.ts.map +1 -1
- package/dist/modules/order/async_lock.js +15 -7
- package/dist/modules/order/async_lock.js.map +1 -1
- package/dist/modules/order/grid.d.ts +8 -0
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +30 -20
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile.d.ts +4 -2
- package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile.js +70 -55
- package/dist/modules/order/grid_reconcile.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts +6 -2
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +72 -43
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/manager.d.ts +21 -5
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +107 -42
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/strategy.d.ts.map +1 -1
- package/dist/modules/order/strategy.js +9 -2
- package/dist/modules/order/strategy.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts +7 -3
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +10 -23
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts +5 -2
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +23 -6
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.js +1 -1
- package/dist/modules/order/utils/system.js.map +1 -1
- package/package.json +1 -1
|
@@ -53,7 +53,7 @@ const SUSPECTED_DUPLICATE_TOLERANCE_MULTIPLIER = 5;
|
|
|
53
53
|
* @param {Function} params.storeGrid - Grid persistence callback
|
|
54
54
|
* @returns {Promise<{resumed: boolean, matchedCount: number}>}
|
|
55
55
|
*/
|
|
56
|
-
async function attemptResumePersistedGridByPriceMatch({ manager, persistedGrid, chainOpenOrders, logger, storeGrid, }) {
|
|
56
|
+
async function attemptResumePersistedGridByPriceMatch({ manager, persistedGrid, chainOpenOrders, logger, storeGrid, boundaryIdx = null, }) {
|
|
57
57
|
if (!Array.isArray(persistedGrid) || persistedGrid.length === 0)
|
|
58
58
|
return { resumed: false, matchedCount: 0 };
|
|
59
59
|
if (!Array.isArray(chainOpenOrders) || chainOpenOrders.length === 0)
|
|
@@ -63,8 +63,8 @@ async function attemptResumePersistedGridByPriceMatch({ manager, persistedGrid,
|
|
|
63
63
|
try {
|
|
64
64
|
logger && logger.log && logger.log('No matching active order IDs found. Attempting to match by price...', 'info');
|
|
65
65
|
const { loadGrid } = require('./grid');
|
|
66
|
-
await loadGrid(manager, persistedGrid);
|
|
67
|
-
await manager.synchronizeWithChain(chainOpenOrders, 'readOpenOrders'
|
|
66
|
+
await loadGrid(manager, persistedGrid, boundaryIdx);
|
|
67
|
+
await manager.synchronizeWithChain(chainOpenOrders, 'readOpenOrders');
|
|
68
68
|
const matchedOrderIds = new Set(Array.from(manager.orders.values())
|
|
69
69
|
.filter((o) => o && (0, order_1.isOrderOnChain)(o))
|
|
70
70
|
.map((o) => o.orderId)
|
|
@@ -101,7 +101,7 @@ async function attemptResumePersistedGridByPriceMatch({ manager, persistedGrid,
|
|
|
101
101
|
* @param {Function} [params.attemptResumeFn=attemptResumePersistedGridByPriceMatch] - Resume function
|
|
102
102
|
* @returns {Promise<Object>} { shouldRegenerate, hasActiveMatch, resumedByPrice, matchedCount }
|
|
103
103
|
*/
|
|
104
|
-
async function decideStartupGridAction({ persistedGrid, chainOpenOrders, manager, logger, storeGrid, attemptResumeFn = attemptResumePersistedGridByPriceMatch, }) {
|
|
104
|
+
async function decideStartupGridAction({ persistedGrid, chainOpenOrders, manager, logger, storeGrid, boundaryIdx = null, attemptResumeFn = attemptResumePersistedGridByPriceMatch, }) {
|
|
105
105
|
const persisted = Array.isArray(persistedGrid) ? persistedGrid : [];
|
|
106
106
|
const chain = Array.isArray(chainOpenOrders) ? chainOpenOrders : [];
|
|
107
107
|
if (persisted.length === 0) {
|
|
@@ -113,7 +113,7 @@ async function decideStartupGridAction({ persistedGrid, chainOpenOrders, manager
|
|
|
113
113
|
return { shouldRegenerate: false, hasActiveMatch: true, resumedByPrice: false, matchedCount: 0 };
|
|
114
114
|
}
|
|
115
115
|
if (chain.length > 0) {
|
|
116
|
-
const resume = await attemptResumeFn({ manager, persistedGrid: persisted, chainOpenOrders: chain, logger, storeGrid });
|
|
116
|
+
const resume = await attemptResumeFn({ manager, persistedGrid: persisted, chainOpenOrders: chain, logger, storeGrid, boundaryIdx });
|
|
117
117
|
return { shouldRegenerate: !resume.resumed, hasActiveMatch: false, resumedByPrice: !!resume.resumed, matchedCount: resume.matchedCount || 0 };
|
|
118
118
|
}
|
|
119
119
|
return { shouldRegenerate: true, hasActiveMatch: false, resumedByPrice: false, matchedCount: 0 };
|
|
@@ -169,9 +169,9 @@ async function reconcileGridOrders({ manager, config, account, privateKey, chain
|
|
|
169
169
|
let targetSell = Math.max(0, Number.isFinite(Number(activeCfg.sell)) ? Number(activeCfg.sell) : 1);
|
|
170
170
|
const chainBuys = parsedChain.filter((x) => x.parsed.type === constants_1.ORDER_TYPES.BUY).map((x) => x.chain);
|
|
171
171
|
const chainSells = parsedChain.filter((x) => x.parsed.type === constants_1.ORDER_TYPES.SELL).map((x) => x.chain);
|
|
172
|
-
// PHASE 1: In-memory reconciliation under lock
|
|
173
|
-
//
|
|
174
|
-
//
|
|
172
|
+
// PHASE 1: In-memory reconciliation under lock — pure planning, no blockchain I/O.
|
|
173
|
+
// All cancellations are collected into plannedCancels and executed in Phase 2.
|
|
174
|
+
// This keeps the lock hierarchy clean (no _gridLock held across sync calls).
|
|
175
175
|
const phase1Result = await manager._gridLock.acquire(async () => {
|
|
176
176
|
if (typeof manager._applyOrderUpdate !== 'function') {
|
|
177
177
|
throw new Error('manager._applyOrderUpdate is required for startup reconciliation');
|
|
@@ -201,6 +201,7 @@ async function reconcileGridOrders({ manager, config, account, privateKey, chain
|
|
|
201
201
|
let unmatchedParsed = unmatchedChain
|
|
202
202
|
.map((co) => ({ chain: co, parsed: (0, order_1.parseChainOrder)(co, manager.assets) }))
|
|
203
203
|
.filter((x) => x.parsed);
|
|
204
|
+
const plannedCancels = [];
|
|
204
205
|
const cancelledDuplicateIds = new Set();
|
|
205
206
|
const activeGridOrders = Array.from(manager.orders.values()).filter((o) => o && o.orderId && (0, order_1.isOrderPlaced)(o));
|
|
206
207
|
for (const u of unmatchedParsed) {
|
|
@@ -226,26 +227,14 @@ async function reconcileGridOrders({ manager, config, account, privateKey, chain
|
|
|
226
227
|
`(orderId=${nearest.gridOrder.orderId}, price=${Format.formatPrice6(nearest.gridOrder.price)}, ` +
|
|
227
228
|
`diff=${Format.formatPrice6(nearest.priceDiff)}, tolerance=${Format.formatPrice6(nearest.tolerance)}, ` +
|
|
228
229
|
`looseTolerance=${Format.formatPrice6(nearest.looseTolerance)})`, 'error');
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
dryRun,
|
|
238
|
-
chainOrderObj: u.chain,
|
|
239
|
-
releaseUntrackedFunds: true,
|
|
240
|
-
});
|
|
241
|
-
cancelledDuplicateIds.add(p.orderId);
|
|
242
|
-
logger?.log?.(`Cancelled unmatched duplicate chain order ${p.orderId} at price ${Format.formatPrice6(p.price)} — ` +
|
|
243
|
-
`stale dust remnant duplicate of grid ${nearest.gridOrder.id} (${nearest.gridOrder.orderId})`, 'warn');
|
|
244
|
-
}
|
|
245
|
-
catch (cancelErr) {
|
|
246
|
-
logger?.log?.(`Failed to cancel duplicate chain order ${p.orderId}: ${(0, errors_1.getErrorMessage)(cancelErr)}`, 'error');
|
|
247
|
-
}
|
|
248
|
-
}
|
|
230
|
+
// Queue duplicate for Phase 2 cancellation instead of executing under lock
|
|
231
|
+
cancelledDuplicateIds.add(p.orderId);
|
|
232
|
+
plannedCancels.push({
|
|
233
|
+
chainOrderId: p.orderId,
|
|
234
|
+
chainOrderObj: u.chain,
|
|
235
|
+
releaseUntrackedFunds: true,
|
|
236
|
+
});
|
|
237
|
+
logger?.log?.(`Queued duplicate chain order ${p.orderId} for cancellation (Phase 2)`, 'warn');
|
|
249
238
|
}
|
|
250
239
|
else if (nearest) {
|
|
251
240
|
logger?.log?.(`${desc}; nearest active same-side grid ${nearest.gridOrder.id} ` +
|
|
@@ -277,6 +266,8 @@ async function reconcileGridOrders({ manager, config, account, privateKey, chain
|
|
|
277
266
|
dryRun,
|
|
278
267
|
plannedCreates,
|
|
279
268
|
plannedUpdates,
|
|
269
|
+
plannedCancels,
|
|
270
|
+
planOnly: true,
|
|
280
271
|
});
|
|
281
272
|
const buyResult = await (0, grid_reconcile_internal_1._reconcileStartupSide)({
|
|
282
273
|
orderType: constants_1.ORDER_TYPES.BUY,
|
|
@@ -290,13 +281,39 @@ async function reconcileGridOrders({ manager, config, account, privateKey, chain
|
|
|
290
281
|
dryRun,
|
|
291
282
|
plannedCreates,
|
|
292
283
|
plannedUpdates,
|
|
284
|
+
plannedCancels,
|
|
285
|
+
planOnly: true,
|
|
293
286
|
});
|
|
294
|
-
return { plannedCreates, plannedUpdates, chainSellCount: sellResult.chainCount, chainBuyCount: buyResult.chainCount };
|
|
287
|
+
return { plannedCreates, plannedUpdates, plannedCancels, chainSellCount: sellResult.chainCount, chainBuyCount: buyResult.chainCount };
|
|
295
288
|
});
|
|
296
|
-
// PHASE 2: Blockchain operations outside lock (batch updates, creates, read)
|
|
289
|
+
// PHASE 2: Blockchain operations outside lock (batch updates, creates, cancels, read)
|
|
297
290
|
// These are the heavy operations that would block all other grid operations
|
|
298
|
-
// if held under _gridLock.
|
|
299
|
-
|
|
291
|
+
// if held under _gridLock. All lock acquisitions here follow the canonical
|
|
292
|
+
// hierarchy (fillProcessingLock → syncLock → gridLock → fundLock).
|
|
293
|
+
const { plannedCreates, plannedUpdates, plannedCancels, chainSellCount, chainBuyCount } = phase1Result;
|
|
294
|
+
// Execute planned cancellations (duplicates, edge, excess) outside lock.
|
|
295
|
+
// Each _cancelChainOrder call acquires _gridLock internally via synchronizeWithChain.
|
|
296
|
+
if (!dryRun && plannedCancels.length > 0) {
|
|
297
|
+
logger?.log?.(`Startup: Executing ${plannedCancels.length} queued cancellations (Phase 2)`, 'info');
|
|
298
|
+
for (const cancelPlan of plannedCancels) {
|
|
299
|
+
try {
|
|
300
|
+
await (0, grid_reconcile_internal_1._cancelChainOrder)({
|
|
301
|
+
chainOrders,
|
|
302
|
+
account,
|
|
303
|
+
privateKey,
|
|
304
|
+
manager,
|
|
305
|
+
chainOrderId: cancelPlan.chainOrderId,
|
|
306
|
+
dryRun,
|
|
307
|
+
chainOrderObj: cancelPlan.chainOrderObj,
|
|
308
|
+
releaseUntrackedFunds: cancelPlan.releaseUntrackedFunds,
|
|
309
|
+
});
|
|
310
|
+
logger?.log?.(`Startup: Cancelled queued order ${cancelPlan.chainOrderId} (Phase 2)`, 'info');
|
|
311
|
+
}
|
|
312
|
+
catch (cancelErr) {
|
|
313
|
+
logger?.log?.(`Startup: Failed to cancel queued order ${cancelPlan.chainOrderId}: ${(0, errors_1.getErrorMessage)(cancelErr)}`, 'error');
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
300
317
|
if (!dryRun && plannedUpdates.length > 0) {
|
|
301
318
|
let updatePlans = plannedUpdates;
|
|
302
319
|
const maxBatchAttempts = 3;
|
|
@@ -412,30 +429,28 @@ async function reconcileGridOrders({ manager, config, account, privateKey, chain
|
|
|
412
429
|
let cancelledSellCount = 0;
|
|
413
430
|
let cancelledBuyCount = 0;
|
|
414
431
|
if (staleSurplusCancels.length > 0) {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
logger?.log?.(`Startup: Cancelled stale surplus ${sc.sideLabel} order ${sc.chainOrderObj.id}`, 'info');
|
|
433
|
-
}
|
|
434
|
-
catch (e) {
|
|
435
|
-
logger?.log?.(`Startup: Failed to cancel surplus ${sc.sideLabel} ${sc.chainOrderObj.id}: ${(0, errors_1.getErrorMessage)(e)}`, 'warn');
|
|
436
|
-
}
|
|
432
|
+
for (const sc of staleSurplusCancels) {
|
|
433
|
+
try {
|
|
434
|
+
await (0, grid_reconcile_internal_1._cancelChainOrder)({
|
|
435
|
+
chainOrders,
|
|
436
|
+
account,
|
|
437
|
+
privateKey,
|
|
438
|
+
manager,
|
|
439
|
+
chainOrderId: sc.chainOrderObj.id,
|
|
440
|
+
dryRun,
|
|
441
|
+
chainOrderObj: sc.chainOrderObj,
|
|
442
|
+
releaseUntrackedFunds: true,
|
|
443
|
+
});
|
|
444
|
+
if (sc.sideLabel === 'SELL')
|
|
445
|
+
cancelledSellCount++;
|
|
446
|
+
else
|
|
447
|
+
cancelledBuyCount++;
|
|
448
|
+
logger?.log?.(`Startup: Cancelled stale surplus ${sc.sideLabel} order ${sc.chainOrderObj.id}`, 'info');
|
|
437
449
|
}
|
|
438
|
-
|
|
450
|
+
catch (e) {
|
|
451
|
+
logger?.log?.(`Startup: Failed to cancel surplus ${sc.sideLabel} ${sc.chainOrderObj.id}: ${(0, errors_1.getErrorMessage)(e)}`, 'warn');
|
|
452
|
+
}
|
|
453
|
+
}
|
|
439
454
|
}
|
|
440
455
|
finalChainSellCount = freshParsed.filter((x) => x.parsed.type === constants_1.ORDER_TYPES.SELL).length - cancelledSellCount;
|
|
441
456
|
finalChainBuyCount = freshParsed.filter((x) => x.parsed.type === constants_1.ORDER_TYPES.BUY).length - cancelledBuyCount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid_reconcile.js","sourceRoot":"","sources":["../../../modules/order/grid_reconcile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid_reconcile.js","sourceRoot":"","sources":["../../../modules/order/grid_reconcile.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ declare function _findLargestOrder(unmatchedOrders: any, updateCount: any): {
|
|
|
66
66
|
* @returns {Promise<{gridIndex: number, gridOrder: Object}|null>} Grid slot info or null
|
|
67
67
|
* @private
|
|
68
68
|
*/
|
|
69
|
-
declare function _cancelLargestOrder({ chainOrders, account, privateKey, manager, unmatchedOrders, updateCount, orderType, dryRun }: {
|
|
69
|
+
declare function _cancelLargestOrder({ chainOrders, account, privateKey, manager, unmatchedOrders, updateCount, orderType, dryRun, planOnly }: {
|
|
70
70
|
chainOrders: any;
|
|
71
71
|
account: any;
|
|
72
72
|
privateKey: any;
|
|
@@ -75,9 +75,11 @@ declare function _cancelLargestOrder({ chainOrders, account, privateKey, manager
|
|
|
75
75
|
updateCount: any;
|
|
76
76
|
orderType: any;
|
|
77
77
|
dryRun: any;
|
|
78
|
+
planOnly?: boolean;
|
|
78
79
|
}): Promise<{
|
|
79
80
|
index: number;
|
|
80
81
|
orderType: any;
|
|
82
|
+
chainOrderObj?: any;
|
|
81
83
|
} | null>;
|
|
82
84
|
/**
|
|
83
85
|
* Create a new chain order from a grid slot.
|
|
@@ -212,7 +214,7 @@ declare function _executePlannedStartupCreates({ createPlans, chainOrders, accou
|
|
|
212
214
|
manager: any;
|
|
213
215
|
dryRun: any;
|
|
214
216
|
}): Promise<void>;
|
|
215
|
-
declare function _reconcileStartupSide({ orderType, targetCount, chainSideOrders, unmatchedSideOrders, manager, chainOrders, account, privateKey, dryRun, plannedCreates, plannedUpdates, }: {
|
|
217
|
+
declare function _reconcileStartupSide({ orderType, targetCount, chainSideOrders, unmatchedSideOrders, manager, chainOrders, account, privateKey, dryRun, plannedCreates, plannedUpdates, plannedCancels, planOnly, }: {
|
|
216
218
|
orderType: any;
|
|
217
219
|
targetCount: any;
|
|
218
220
|
chainSideOrders: any;
|
|
@@ -224,6 +226,8 @@ declare function _reconcileStartupSide({ orderType, targetCount, chainSideOrders
|
|
|
224
226
|
dryRun: any;
|
|
225
227
|
plannedCreates: any;
|
|
226
228
|
plannedUpdates: any;
|
|
229
|
+
plannedCancels: any[];
|
|
230
|
+
planOnly?: boolean;
|
|
227
231
|
}): Promise<{
|
|
228
232
|
chainCount: any;
|
|
229
233
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid_reconcile_internal.d.ts","sourceRoot":"","sources":["../../../modules/order/grid_reconcile_internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAI3D;AAED;;;;;;;GAOG;AACH,iBAAS,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CA2B/E;AAED,iBAAS,0BAA0B,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG;IAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAA;CAAE,CAoBtO;AAED;;;;;;;;;;GAUG;AACH,iBAAS,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAuBvF;AAED;;;;;;;GAOG;AACH,iBAAS,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBvG;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAe,mBAAmB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;IAAE,WAAW,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,eAAe,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;CAAE,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"grid_reconcile_internal.d.ts","sourceRoot":"","sources":["../../../modules/order/grid_reconcile_internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -208,7 +208,7 @@ function _findLargestOrder(unmatchedOrders, updateCount) {
|
|
|
208
208
|
* @returns {Promise<{gridIndex: number, gridOrder: Object}|null>} Grid slot info or null
|
|
209
209
|
* @private
|
|
210
210
|
*/
|
|
211
|
-
async function _cancelLargestOrder({ chainOrders, account, privateKey, manager, unmatchedOrders, updateCount, orderType, dryRun }) {
|
|
211
|
+
async function _cancelLargestOrder({ chainOrders, account, privateKey, manager, unmatchedOrders, updateCount, orderType, dryRun, planOnly = false }) {
|
|
212
212
|
if (dryRun)
|
|
213
213
|
return null;
|
|
214
214
|
if (!Array.isArray(unmatchedOrders) || unmatchedOrders.length === 0)
|
|
@@ -222,6 +222,11 @@ async function _cancelLargestOrder({ chainOrders, account, privateKey, manager,
|
|
|
222
222
|
const originalSize = Number(largestOrder.for_sale) || 0;
|
|
223
223
|
const orderId = largestOrder.id;
|
|
224
224
|
logger?.log?.(`Grid edge detected: cancelling largest order ${orderId} (size ${originalSize}) to free up funds`, 'info');
|
|
225
|
+
if (planOnly) {
|
|
226
|
+
// In planOnly mode, return the index and chain order info so the caller
|
|
227
|
+
// can plan the replacement create. Actual cancellation happens in Phase 2.
|
|
228
|
+
return { index: largestIndex, orderType, chainOrderObj: largestOrder };
|
|
229
|
+
}
|
|
225
230
|
try {
|
|
226
231
|
// Cancel the largest order on blockchain and release untracked funds.
|
|
227
232
|
await _cancelChainOrder({
|
|
@@ -292,13 +297,13 @@ async function _createOrderFromGrid({ chainOrders, account, privateKey, manager,
|
|
|
292
297
|
if (chainOrderId) {
|
|
293
298
|
const btsFeeData = (0, math_1.getAssetFees)('BTS');
|
|
294
299
|
// Centralized Fund Tracking: Use manager's sync core to handle state transition and fund deduction
|
|
295
|
-
// CRITICAL: Use _applySync (lock-free) since caller holds _gridLock
|
|
296
300
|
await manager._applySync({
|
|
297
301
|
gridOrderId: gridOrder.id,
|
|
298
302
|
chainOrderId,
|
|
299
303
|
isPartialPlacement: false,
|
|
304
|
+
expectedType: gridOrder.type,
|
|
300
305
|
fee: btsFeeData.createFee
|
|
301
|
-
}, 'createOrder'
|
|
306
|
+
}, 'createOrder');
|
|
302
307
|
}
|
|
303
308
|
else {
|
|
304
309
|
// CRITICAL FIX: Recovery sync if order extraction fails
|
|
@@ -306,12 +311,9 @@ async function _createOrderFromGrid({ chainOrders, account, privateKey, manager,
|
|
|
306
311
|
logger?.log?.(`[_createOrderFromGrid] CRITICAL: createOrder succeeded but chainOrderId extraction failed`, 'error');
|
|
307
312
|
try {
|
|
308
313
|
const freshChainOrders = await chainOrders.readOpenOrders((0, system_1.resolveAccountRef)(manager, account), constants_1.TIMING.CONNECTION_TIMEOUT_MS);
|
|
309
|
-
// CRITICAL FIX: Use skipAccounting: false - order discovery must update accounting
|
|
310
|
-
// Orphan order requires fund deduction to prevent phantom capital
|
|
311
314
|
await manager.syncFromOpenOrders(freshChainOrders, {
|
|
312
315
|
skipAccounting: false,
|
|
313
316
|
source: 'chainOrderIdExtractionFailure',
|
|
314
|
-
gridLockAlreadyHeld: true,
|
|
315
317
|
});
|
|
316
318
|
}
|
|
317
319
|
catch (syncErr) {
|
|
@@ -358,12 +360,10 @@ async function _cancelChainOrder({ chainOrders, account, privateKey, manager, ch
|
|
|
358
360
|
await manager.syncFromOpenOrders(freshChainOrders, {
|
|
359
361
|
skipAccounting: false,
|
|
360
362
|
source: 'cancelOrder',
|
|
361
|
-
gridLockAlreadyHeld: true,
|
|
362
363
|
});
|
|
363
364
|
}
|
|
364
365
|
else {
|
|
365
|
-
|
|
366
|
-
await manager._applySync({ orderId: chainOrderId }, 'cancelOrder', { gridLockAlreadyHeld: true });
|
|
366
|
+
await manager._applySync({ orderId: chainOrderId }, 'cancelOrder');
|
|
367
367
|
}
|
|
368
368
|
// Unmatched chain orders are not represented as ACTIVE/PARTIAL grid slots, so
|
|
369
369
|
// synchronizeWithChain('cancelOrder') cannot release their commitment.
|
|
@@ -381,7 +381,6 @@ async function _recoverStartupSyncFailure({ chainOrders, manager, account, logge
|
|
|
381
381
|
await manager.syncFromOpenOrders(freshChainOrders, {
|
|
382
382
|
skipAccounting: false,
|
|
383
383
|
source,
|
|
384
|
-
gridLockAlreadyHeld: true,
|
|
385
384
|
});
|
|
386
385
|
return freshChainOrders;
|
|
387
386
|
}
|
|
@@ -457,10 +456,11 @@ async function _finalizeStartupUpdate({ manager, preparedUpdate }) {
|
|
|
457
456
|
gridOrderId: plan.gridOrder.id,
|
|
458
457
|
chainOrderId: plan.chainOrderId,
|
|
459
458
|
isPartialPlacement: false,
|
|
459
|
+
expectedType: plan.gridOrder.type,
|
|
460
460
|
fee: btsFeeData.updateFee,
|
|
461
461
|
skipAccounting: false,
|
|
462
462
|
deferredFee: deferredFeeFloat,
|
|
463
|
-
}, 'createOrder'
|
|
463
|
+
}, 'createOrder');
|
|
464
464
|
}
|
|
465
465
|
async function _executeStartupUpdateBatch({ updatePlans, chainOrders, account, privateKey, manager, dryRun, }) {
|
|
466
466
|
if (!Array.isArray(updatePlans) || updatePlans.length === 0 || dryRun) {
|
|
@@ -671,8 +671,9 @@ async function _executeStartupCreateGroupBatch({ group, chainOrders, account, pr
|
|
|
671
671
|
gridOrderId: plan.gridOrder.id,
|
|
672
672
|
chainOrderId,
|
|
673
673
|
isPartialPlacement: false,
|
|
674
|
+
expectedType: plan.gridOrder.type,
|
|
674
675
|
fee: btsFeeData.createFee
|
|
675
|
-
}, 'createOrder'
|
|
676
|
+
}, 'createOrder');
|
|
676
677
|
}
|
|
677
678
|
if (missingChainOrderId) {
|
|
678
679
|
await _recoverStartupSyncFailure({
|
|
@@ -745,7 +746,7 @@ async function _executePlannedStartupCreates({ createPlans, chainOrders, account
|
|
|
745
746
|
}
|
|
746
747
|
}
|
|
747
748
|
}
|
|
748
|
-
async function _reconcileStartupSide({ orderType, targetCount, chainSideOrders, unmatchedSideOrders, manager, chainOrders, account, privateKey, dryRun, plannedCreates, plannedUpdates, }) {
|
|
749
|
+
async function _reconcileStartupSide({ orderType, targetCount, chainSideOrders, unmatchedSideOrders, manager, chainOrders, account, privateKey, dryRun, plannedCreates, plannedUpdates, plannedCancels, planOnly = false, }) {
|
|
749
750
|
const logger = manager?.logger;
|
|
750
751
|
const sideUpper = orderType === constants_1.ORDER_TYPES.SELL ? 'SELL' : 'BUY';
|
|
751
752
|
const balanceKey = orderType === constants_1.ORDER_TYPES.SELL ? 'sellFree' : 'buyFree';
|
|
@@ -770,9 +771,18 @@ async function _reconcileStartupSide({ orderType, targetCount, chainSideOrders,
|
|
|
770
771
|
updateCount,
|
|
771
772
|
orderType,
|
|
772
773
|
dryRun,
|
|
774
|
+
planOnly,
|
|
773
775
|
});
|
|
774
|
-
if (cancelInfo)
|
|
776
|
+
if (cancelInfo) {
|
|
775
777
|
cancelledIndex = cancelInfo.index;
|
|
778
|
+
if (planOnly && cancelInfo.chainOrderObj) {
|
|
779
|
+
plannedCancels.push({
|
|
780
|
+
chainOrderId: cancelInfo.chainOrderObj.id,
|
|
781
|
+
chainOrderObj: cancelInfo.chainOrderObj,
|
|
782
|
+
releaseUntrackedFunds: true,
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
}
|
|
776
786
|
}
|
|
777
787
|
for (let i = 0; i < updateCount; i++) {
|
|
778
788
|
if (cancelledIndex !== null && i === cancelledIndex)
|
|
@@ -848,43 +858,62 @@ async function _reconcileStartupSide({ orderType, targetCount, chainSideOrders,
|
|
|
848
858
|
.map((co) => ({ chain: co, parsed: (0, order_1.parseChainOrder)(co, manager.assets) }))
|
|
849
859
|
.filter((x) => x.parsed)
|
|
850
860
|
.sort(sortExcessCancelComparator);
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
}
|
|
866
|
-
logger?.log?.(`Startup: Successfully cancelled excess ${sideUpper} order ${x.chain.id}`, 'info');
|
|
867
|
-
cancelCount--;
|
|
868
|
-
}
|
|
869
|
-
catch (err) {
|
|
870
|
-
logger?.log?.(`Startup: Failed to cancel ${sideUpper} ${x.chain.id}: ${(0, errors_1.getErrorMessage)(err)}`, 'error');
|
|
861
|
+
if (planOnly) {
|
|
862
|
+
// In planOnly mode, record the cancellations for Phase 2 execution.
|
|
863
|
+
// This prevents blockchain I/O inside _gridLock (Level 3).
|
|
864
|
+
if (cancelCount > 0) {
|
|
865
|
+
logger?.log?.(`Startup: ${sideUpper} excess ${cancelCount} order(s) queued for cancellation (Phase 2)`, 'info');
|
|
866
|
+
for (const x of parsedUnmatched) {
|
|
867
|
+
if (cancelCount <= 0)
|
|
868
|
+
break;
|
|
869
|
+
plannedCancels.push({
|
|
870
|
+
chainOrderId: x.chain.id,
|
|
871
|
+
chainOrderObj: x.chain,
|
|
872
|
+
releaseUntrackedFunds: true,
|
|
873
|
+
});
|
|
874
|
+
cancelCount--;
|
|
875
|
+
}
|
|
871
876
|
}
|
|
872
877
|
}
|
|
873
|
-
|
|
874
|
-
const
|
|
875
|
-
.filter((o) => o && o.orderId)
|
|
876
|
-
.sort(sortMatchedCancelComparator);
|
|
877
|
-
for (const o of activeOrders) {
|
|
878
|
+
else {
|
|
879
|
+
for (const x of parsedUnmatched) {
|
|
878
880
|
if (cancelCount <= 0)
|
|
879
881
|
break;
|
|
880
|
-
logger?.log?.(`Startup: Cancelling excess
|
|
882
|
+
logger?.log?.(`Startup: Cancelling excess ${sideUpper} chain order ${x.chain.id}`, 'info');
|
|
881
883
|
try {
|
|
882
|
-
await _cancelChainOrder({
|
|
883
|
-
|
|
884
|
+
await _cancelChainOrder({
|
|
885
|
+
chainOrders,
|
|
886
|
+
account,
|
|
887
|
+
privateKey,
|
|
888
|
+
manager,
|
|
889
|
+
chainOrderId: x.chain.id,
|
|
890
|
+
chainOrderObj: x.chain,
|
|
891
|
+
releaseUntrackedFunds: true,
|
|
892
|
+
dryRun,
|
|
893
|
+
});
|
|
894
|
+
logger?.log?.(`Startup: Successfully cancelled excess ${sideUpper} order ${x.chain.id}`, 'info');
|
|
884
895
|
cancelCount--;
|
|
885
896
|
}
|
|
886
897
|
catch (err) {
|
|
887
|
-
logger?.log?.(`Startup: Failed to cancel
|
|
898
|
+
logger?.log?.(`Startup: Failed to cancel ${sideUpper} ${x.chain.id}: ${(0, errors_1.getErrorMessage)(err)}`, 'error');
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
if (cancelCount > 0) {
|
|
902
|
+
const activeOrders = manager.getOrdersByTypeAndState(orderType, constants_1.ORDER_STATES.ACTIVE)
|
|
903
|
+
.filter((o) => o && o.orderId)
|
|
904
|
+
.sort(sortMatchedCancelComparator);
|
|
905
|
+
for (const o of activeOrders) {
|
|
906
|
+
if (cancelCount <= 0)
|
|
907
|
+
break;
|
|
908
|
+
logger?.log?.(`Startup: Cancelling excess matched ${sideUpper} ${o.orderId} (grid ${o.id})`, 'warn');
|
|
909
|
+
try {
|
|
910
|
+
await _cancelChainOrder({ chainOrders, account, privateKey, manager, chainOrderId: o.orderId, dryRun, chainOrderObj: o });
|
|
911
|
+
logger?.log?.(`Startup: Successfully cancelled excess matched ${sideUpper} order ${o.orderId} (grid ${o.id})`, 'info');
|
|
912
|
+
cancelCount--;
|
|
913
|
+
}
|
|
914
|
+
catch (err) {
|
|
915
|
+
logger?.log?.(`Startup: Failed to cancel matched ${sideUpper} ${o.orderId}: ${(0, errors_1.getErrorMessage)(err)}`, 'error');
|
|
916
|
+
}
|
|
888
917
|
}
|
|
889
918
|
}
|
|
890
919
|
}
|