dexbot 1.1.12 → 1.1.14

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 (70) hide show
  1. package/dist/credential-daemon.d.ts.map +1 -1
  2. package/dist/credential-daemon.js +13 -4
  3. package/dist/credential-daemon.js.map +1 -1
  4. package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
  5. package/dist/market_adapter/core/market_adapter_service.js +6 -0
  6. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  7. package/dist/market_adapter/market_adapter.d.ts.map +1 -1
  8. package/dist/market_adapter/market_adapter.js +6 -3
  9. package/dist/market_adapter/market_adapter.js.map +1 -1
  10. package/dist/modules/chain_orders.d.ts +5 -1
  11. package/dist/modules/chain_orders.d.ts.map +1 -1
  12. package/dist/modules/chain_orders.js +8 -4
  13. package/dist/modules/chain_orders.js.map +1 -1
  14. package/dist/modules/constants.d.ts +5 -0
  15. package/dist/modules/constants.d.ts.map +1 -1
  16. package/dist/modules/constants.js +28 -12
  17. package/dist/modules/constants.js.map +1 -1
  18. package/dist/modules/dexbot_class.d.ts +38 -0
  19. package/dist/modules/dexbot_class.d.ts.map +1 -1
  20. package/dist/modules/dexbot_class.js +449 -91
  21. package/dist/modules/dexbot_class.js.map +1 -1
  22. package/dist/modules/dexbot_credential_client.d.ts +3 -0
  23. package/dist/modules/dexbot_credential_client.d.ts.map +1 -1
  24. package/dist/modules/dexbot_credential_client.js +78 -43
  25. package/dist/modules/dexbot_credential_client.js.map +1 -1
  26. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  27. package/dist/modules/dexbot_maintenance_runtime.js +100 -4
  28. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  29. package/dist/modules/key_store.d.ts +2 -2
  30. package/dist/modules/key_store.d.ts.map +1 -1
  31. package/dist/modules/key_store.js +6 -1
  32. package/dist/modules/key_store.js.map +1 -1
  33. package/dist/modules/node_manager.d.ts +9 -0
  34. package/dist/modules/node_manager.d.ts.map +1 -1
  35. package/dist/modules/node_manager.js +35 -17
  36. package/dist/modules/node_manager.js.map +1 -1
  37. package/dist/modules/order/accounting.d.ts.map +1 -1
  38. package/dist/modules/order/accounting.js +36 -5
  39. package/dist/modules/order/accounting.js.map +1 -1
  40. package/dist/modules/order/async_lock.d.ts +21 -0
  41. package/dist/modules/order/async_lock.d.ts.map +1 -1
  42. package/dist/modules/order/async_lock.js +43 -3
  43. package/dist/modules/order/async_lock.js.map +1 -1
  44. package/dist/modules/order/grid.d.ts +26 -0
  45. package/dist/modules/order/grid.d.ts.map +1 -1
  46. package/dist/modules/order/grid.js +53 -0
  47. package/dist/modules/order/grid.js.map +1 -1
  48. package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
  49. package/dist/modules/order/grid_reconcile.js +6 -3
  50. package/dist/modules/order/grid_reconcile.js.map +1 -1
  51. package/dist/modules/order/manager.d.ts +1 -3
  52. package/dist/modules/order/manager.d.ts.map +1 -1
  53. package/dist/modules/order/manager.js +15 -30
  54. package/dist/modules/order/manager.js.map +1 -1
  55. package/dist/modules/order/sync_engine.d.ts +9 -2
  56. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  57. package/dist/modules/order/sync_engine.js +79 -5
  58. package/dist/modules/order/sync_engine.js.map +1 -1
  59. package/dist/modules/order/utils/order.d.ts.map +1 -1
  60. package/dist/modules/order/utils/order.js +17 -1
  61. package/dist/modules/order/utils/order.js.map +1 -1
  62. package/dist/modules/order/utils/system.d.ts +1 -0
  63. package/dist/modules/order/utils/system.d.ts.map +1 -1
  64. package/dist/modules/order/utils/system.js +90 -38
  65. package/dist/modules/order/utils/system.js.map +1 -1
  66. package/dist/modules/paths.d.ts +1 -0
  67. package/dist/modules/paths.d.ts.map +1 -1
  68. package/dist/modules/paths.js +1 -0
  69. package/dist/modules/paths.js.map +1 -1
  70. package/package.json +14 -4
@@ -15,6 +15,9 @@ interface CredentialClientOptions {
15
15
  sessionId?: string | null;
16
16
  botHmacSecret?: string | null;
17
17
  batchId?: string | null;
18
+ nodeUrl?: string;
19
+ fallbackNodes?: string[];
20
+ onNodeFailed?: (nodeUrl: string) => void;
18
21
  }
19
22
  interface CredentialDaemonMeta {
20
23
  uncertainOnTimeout?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"dexbot_credential_client.d.ts","sourceRoot":"","sources":["../../modules/dexbot_credential_client.ts"],"names":[],"mappings":"AAmBA,UAAU,8BAA8B;IACpC,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,uBAAuB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,oBAAoB;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,wBAAwB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;CAC7B;AAiBD;;;;;;;;;;;;;;GAcG;AACH,cAAM,uBAAwB,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC;CAU5E;AAMD,iBAAS,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAmE5J;AAMD,iBAAS,uBAAuB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAW/E;AAED,iBAAe,uBAAuB,CAAC,SAAS,GAAE,MAAgC,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAYxI;AAED,iBAAS,oCAAoC,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAqE9J;;;;;;;;;;;AAED,kBASE"}
1
+ {"version":3,"file":"dexbot_credential_client.d.ts","sourceRoot":"","sources":["../../modules/dexbot_credential_client.ts"],"names":[],"mappings":"AAmBA,UAAU,8BAA8B;IACpC,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,uBAAuB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,UAAU,oBAAoB;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,wBAAwB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;CAC7B;AAkBD;;;;;;;;;;;;;;GAcG;AACH,cAAM,uBAAwB,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC;CAU5E;AAMD,iBAAS,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAmE5J;AAMD,iBAAS,uBAAuB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAW/E;AAED,iBAAe,uBAAuB,CAAC,SAAS,GAAE,MAAgC,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAYxI;AAMD,iBAAe,oCAAoC,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAgGpK;;;;;;;;;;;AAED,kBASE"}
@@ -150,12 +150,20 @@ async function waitForCredentialDaemon(timeoutMs = DEFAULT_WAIT_TIMEOUT_MS, opti
150
150
  await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
151
151
  }
152
152
  }
153
- function executeOperationsViaCredentialDaemon(accountName, operations, options = {}) {
153
+ function extractHostname(url) {
154
+ try {
155
+ return new URL(url).hostname;
156
+ }
157
+ catch {
158
+ return url;
159
+ }
160
+ }
161
+ async function executeOperationsViaCredentialDaemon(accountName, operations, options = {}) {
154
162
  if (!accountName) {
155
- return Promise.reject(new Error('accountName is required to execute operations'));
163
+ throw new Error('accountName is required to execute operations');
156
164
  }
157
165
  if (!Array.isArray(operations)) {
158
- return Promise.reject(new Error('operations must be an array'));
166
+ throw new Error('operations must be an array');
159
167
  }
160
168
  const socketPath = getSocketPath(options);
161
169
  // Broadcast requests have their own (longer) outer timeout. Non-broadcast
@@ -165,51 +173,78 @@ function executeOperationsViaCredentialDaemon(accountName, operations, options =
165
173
  const timeoutMs = Number.isFinite(Number(options.timeoutMs))
166
174
  ? Number(options.timeoutMs)
167
175
  : defaultTimeout;
168
- const payload = { type: 'execute-operations', accountName, operations };
169
- const sessionId = options.sessionId || null;
170
- if (sessionId)
171
- payload.sessionId = sessionId;
172
- const botHmacSecret = options.botHmacSecret || null;
173
- if (botHmacSecret && sessionId) {
174
- payload.hmac = createHmac('sha256', Buffer.from(botHmacSecret, 'hex'))
175
- .update(JSON.stringify({ sessionId, operations }))
176
- .digest('hex');
177
- }
178
- const meta = isBroadcast
179
- ? {
180
- uncertainOnTimeout: true,
181
- operations,
182
- accountName,
183
- batchId: options.batchId || null,
184
- }
185
- : {};
186
- return sendCredentialDaemonRequest(socketPath, payload, timeoutMs, meta).then((response) => {
187
- if (response.success) {
188
- return response;
176
+ const fallbackNodes = Array.isArray(options.fallbackNodes) ? options.fallbackNodes : [];
177
+ const maxAttempts = 1 + fallbackNodes.length;
178
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
179
+ // attempt 0 uses options.nodeUrl (typically undefined, meaning the daemon's
180
+ // default node list); subsequent attempts cycle through fallbackNodes[].
181
+ // onNodeFailed is only invoked when nodeUrl is truthy, so the primary
182
+ // node is never reported through this callback — only the named fallbacks.
183
+ const nodeUrl = attempt === 0 ? (options.nodeUrl || undefined) : fallbackNodes[attempt - 1];
184
+ const payload = { type: 'execute-operations', accountName, operations };
185
+ const sessionId = options.sessionId || null;
186
+ if (sessionId)
187
+ payload.sessionId = sessionId;
188
+ if (nodeUrl)
189
+ payload.nodeUrl = nodeUrl;
190
+ const botHmacSecret = options.botHmacSecret || null;
191
+ if (botHmacSecret && sessionId) {
192
+ payload.hmac = createHmac('sha256', Buffer.from(botHmacSecret, 'hex'))
193
+ .update(JSON.stringify({ sessionId, operations }))
194
+ .digest('hex');
189
195
  }
190
- const errMsg = response.error || 'Unknown credential daemon error';
191
- const errCode = response.code || null;
192
- // The daemon hit its inner deadline (BROADCAST_DEADLINE) and the chain
193
- // state is uncertain. Convert this typed failure back to a
194
- // BroadcastUncertainError so the recovery path picks it up. Only
195
- // relevant for broadcast requests — non-broadcast callers don't carry
196
- // the uncertainOnTimeout flag.
197
- if (isBroadcast &&
198
- (errCode === DAEMON_CODES.BROADCAST_DEADLINE ||
199
- (typeof errMsg === 'string' && errMsg.startsWith(DAEMON_CODES.BROADCAST_DEADLINE)))) {
200
- throw new BroadcastUncertainError(`Credential daemon broadcast uncertain: ${errCode || errMsg}`, {
196
+ const meta = isBroadcast
197
+ ? {
198
+ uncertainOnTimeout: true,
201
199
  operations,
202
200
  accountName,
203
201
  batchId: options.batchId || null,
204
- payload,
205
- timeoutMs,
206
- });
202
+ }
203
+ : {};
204
+ try {
205
+ const response = await sendCredentialDaemonRequest(socketPath, payload, timeoutMs, meta);
206
+ if (response.success) {
207
+ return response;
208
+ }
209
+ const errMsg = response.error || 'Unknown credential daemon error';
210
+ const errCode = response.code || null;
211
+ // The daemon hit its inner deadline (BROADCAST_DEADLINE) and the chain
212
+ // state is uncertain. Convert this typed failure back to a
213
+ // BroadcastUncertainError so the recovery path picks it up. Only
214
+ // relevant for broadcast requests — non-broadcast callers don't carry
215
+ // the uncertainOnTimeout flag.
216
+ if (isBroadcast &&
217
+ (errCode === DAEMON_CODES.BROADCAST_DEADLINE ||
218
+ (typeof errMsg === 'string' && errMsg.startsWith(DAEMON_CODES.BROADCAST_DEADLINE)))) {
219
+ throw new BroadcastUncertainError(`Credential daemon broadcast uncertain: ${errCode || errMsg}`, {
220
+ operations,
221
+ accountName,
222
+ batchId: options.batchId || null,
223
+ payload,
224
+ timeoutMs,
225
+ });
226
+ }
227
+ // Typed failure reply from the daemon (e.g. policy denied, bad op) —
228
+ // the chain state is known (chain NOT touched), so a plain Error is
229
+ // fine.
230
+ throw new Error(errMsg);
207
231
  }
208
- // Typed failure reply from the daemon (e.g. policy denied, bad op) —
209
- // the chain state is known (chain NOT touched), so a plain Error is
210
- // fine.
211
- throw new Error(errMsg);
212
- });
232
+ catch (err) {
233
+ if (err instanceof BroadcastUncertainError) {
234
+ if (typeof options.onNodeFailed === 'function' && nodeUrl) {
235
+ options.onNodeFailed(nodeUrl);
236
+ }
237
+ if (attempt < maxAttempts - 1) {
238
+ const label = extractHostname(nodeUrl || '') || 'primary';
239
+ const nextHost = extractHostname(fallbackNodes[attempt]);
240
+ console.warn(`[cred-daemon-client] BROADCAST_DEADLINE on ${label}, retrying fallback ${nextHost}...`);
241
+ await new Promise((resolve) => setTimeout(resolve, TIMING.BLOCKCHAIN_SETTLE_DELAY_MS));
242
+ continue;
243
+ }
244
+ }
245
+ throw err;
246
+ }
247
+ }
213
248
  }
214
249
  module.exports = {
215
250
  DEFAULT_READY_FILE,
@@ -1 +1 @@
1
- {"version":3,"file":"dexbot_credential_client.js","sourceRoot":"","sources":["../../modules/dexbot_credential_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dexbot_credential_client.js","sourceRoot":"","sources":["../../modules/dexbot_credential_client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dexbot_maintenance_runtime.d.ts","sourceRoot":"","sources":["../../modules/dexbot_maintenance_runtime.ts"],"names":[],"mappings":"AAwEA;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,GAAG,KAAA,WAG5B;AAED;;;;;;GAMG;AACH,iBAAS,+BAA+B,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA,OAaxD;AAED;;;;;GAKG;AACH,iBAAS,+BAA+B,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA,WAMxD;AA8HD;;;GAGG;AACH,iBAAS,sBAAsB;;;;;;;;;;;;EAgC9B;AAuGD;;;GAGG;AACH,iBAAe,oBAAoB,kBAElC;AAED;;;;;;GAMG;AACH,iBAAe,sCAAsC,CAAC,GAAG,KAAA,EAAE,OAAO,SAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4I9E;AAED;;;;;;GAMG;AACH,iBAAS,gCAAgC,CAAC,GAAG,KAAA,EAAE,OAAO,SAAY;;;;;;;;;;EA+DjE;AAyHD;;;;;;;GAOG;AACH,iBAAS,0BAA0B,CAAC,MAAM,KAAA,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,OA0BnG;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,GAAG,KAAA,EAAE,OAAO,GAAE;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACnB,oBAsGL;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,oBAkB3C;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,iBAkD3C;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,iBAM3C;AAED;;;;GAIG;AACH,iBAAS,2BAA2B,CAAC,GAAG,KAAA,WAKvC;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAAC,GAAG,KAAA,QA0DnC;AAED;;;;GAIG;AACH,iBAAe,sBAAsB,CAAC,GAAG,KAAA,iBAKxC;AAED;;;;GAIG;AACH,iBAAS,4BAA4B,CAAC,GAAG,KAAA,QAsHxC;AAED;;;GAGG;AACH,iBAAS,2BAA2B,CAAC,GAAG,KAAA,QAMvC;AAED;;;;;;;GAOG;AACH,iBAAe,2BAA2B,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,SAAa,gBAiB1E;AAID;;;;;GAKG;AACH,iBAAS,wBAAwB,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,WAYjD;AAyGD;;;;;;;GAOG;AACH,iBAAe,uBAAuB,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,iBA4HlD;AAED;;;;;;;;;;;GAWG;AACH,iBAAe,gBAAgB,CAAC,GAAG,KAAA,EAAE,EAAE,GAAG,EAAE,OAAY,EAAE,IAAI,EAAE,QAAa,EAAE,mBAA2B,EAAE;;;;CAAK;;;;;GAyChH;AAED;;;;;;;;;GASG;AACH,iBAAe,kBAAkB,CAC7B,GAAG,KAAA,EACH,OAAO,SAAa,EACpB,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,iBAkDtE;AAID;;;;;;GAMG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,iBAoD3C;AAED;;;;;;GAMG;AACH,iBAAe,UAAU,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,iBAmFrC;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,kBAyBE"}
1
+ {"version":3,"file":"dexbot_maintenance_runtime.d.ts","sourceRoot":"","sources":["../../modules/dexbot_maintenance_runtime.ts"],"names":[],"mappings":"AAyEA;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,GAAG,KAAA,WAG5B;AAED;;;;;;GAMG;AACH,iBAAS,+BAA+B,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA,OAaxD;AAED;;;;;GAKG;AACH,iBAAS,+BAA+B,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA,WAMxD;AA8HD;;;GAGG;AACH,iBAAS,sBAAsB;;;;;;;;;;;;EAgC9B;AAuGD;;;GAGG;AACH,iBAAe,oBAAoB,kBAElC;AAED;;;;;;GAMG;AACH,iBAAe,sCAAsC,CAAC,GAAG,KAAA,EAAE,OAAO,SAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4I9E;AAED;;;;;;GAMG;AACH,iBAAS,gCAAgC,CAAC,GAAG,KAAA,EAAE,OAAO,SAAY;;;;;;;;;;EA+DjE;AAyHD;;;;;;;GAOG;AACH,iBAAS,0BAA0B,CAAC,MAAM,KAAA,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,OA0BnG;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,GAAG,KAAA,EAAE,OAAO,GAAE;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACnB,oBAsGL;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,oBAkB3C;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,iBAkD3C;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,iBAM3C;AAED;;;;GAIG;AACH,iBAAS,2BAA2B,CAAC,GAAG,KAAA,WAKvC;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAAC,GAAG,KAAA,QA0DnC;AAED;;;;GAIG;AACH,iBAAe,sBAAsB,CAAC,GAAG,KAAA,iBAKxC;AAED;;;;GAIG;AACH,iBAAS,4BAA4B,CAAC,GAAG,KAAA,QAsHxC;AAED;;;GAGG;AACH,iBAAS,2BAA2B,CAAC,GAAG,KAAA,QAMvC;AAED;;;;;;;GAOG;AACH,iBAAe,2BAA2B,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,SAAa,gBAiB1E;AAID;;;;;GAKG;AACH,iBAAS,wBAAwB,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,WAYjD;AAyGD;;;;;;;GAOG;AACH,iBAAe,uBAAuB,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,iBAuMlD;AA2CD;;;;;;;;;;;GAWG;AACH,iBAAe,gBAAgB,CAAC,GAAG,KAAA,EAAE,EAAE,GAAG,EAAE,OAAY,EAAE,IAAI,EAAE,QAAa,EAAE,mBAA2B,EAAE;;;;CAAK;;;;;GAyChH;AAED;;;;;;;;;GASG;AACH,iBAAe,kBAAkB,CAC7B,GAAG,KAAA,EACH,OAAO,SAAa,EACpB,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,iBAkDtE;AAID;;;;;;GAMG;AACH,iBAAe,yBAAyB,CAAC,GAAG,KAAA,iBAoD3C;AAED;;;;;;GAMG;AACH,iBAAe,UAAU,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,iBAmFrC;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,kBAyBE"}
@@ -4,8 +4,9 @@ const { createHash } = require('./crypto/sync');
4
4
  const fs = require('fs');
5
5
  const { path } = require('./path_api');
6
6
  const { spawn } = require('child_process');
7
- const { BitShares } = require('./bitshares_client');
7
+ const { BitShares, getNodeManager } = require('./bitshares_client');
8
8
  const chainOrders = require('./chain_orders');
9
+ const { BroadcastUncertainError } = require('./dexbot_credential_client');
9
10
  const { Config, hasOpenOrdersSyncLoopMsSet, getOpenOrdersSyncLoopMs } = require('./config');
10
11
  const Grid = require('./order/grid');
11
12
  const { ORDER_STATES, ORDER_TYPES, TIMING, BTS_PRECISION, NATIVE_CLIENT } = require('./constants');
@@ -20,7 +21,7 @@ const { parseJsonWithComments } = require('./order/utils/system');
20
21
  const { cloneWeightDistribution, calculateOrderCreationFees, calculateSwapInAmount, floatToBlockchainInt, blockchainToFloat } = require('./order/utils/math');
21
22
  const { updateDynamicGridSnapshotSync } = require('../market_adapter/utils/dynamic_grid_snapshot');
22
23
  const { reconcileGridOrders } = require('./order/grid_reconcile');
23
- const { formatUnmatchedChainOrder, getSideBudget, correctAllPriceMismatches } = require('./order/utils/order');
24
+ const { formatUnmatchedChainOrder, getSideBudget, correctAllPriceMismatches, isOrderOnChain } = require('./order/utils/order');
24
25
  const { getStorage } = require('./storage');
25
26
  const storage = getStorage();
26
27
  const { ensureDir, safeUnlink } = require('./utils/fs_utils');
@@ -1253,6 +1254,63 @@ async function executeMaintenanceLogic(bot, context) {
1253
1254
  bot._log(`[MAINT-COOLDOWN] Skipping ${context} maintenance after hard-abort recovery sync (remaining=${bot._maintenanceCooldownCycles})`, 'warn');
1254
1255
  return;
1255
1256
  }
1257
+ // Grid bloat re-check: if a previous Grid.loadGrid detected bloat and set
1258
+ // _gridBloatDetectedAt, verify the grid is still oversized after a grace
1259
+ // period. If it hasn't resolved and no structural resync is in flight,
1260
+ // trigger one. This catches bloat that occurred during startup (before
1261
+ // requestStructuralGridResync was wired) or bloat that survived a prior
1262
+ // resync attempt.
1263
+ if (bot.manager._gridBloatDetectedAt && typeof bot.manager.requestStructuralGridResync === 'function') {
1264
+ const graceMs = TIMING.GRID_BLOAT_RESYNC_GRACE_MS || 300000;
1265
+ if (Date.now() - bot.manager._gridBloatDetectedAt >= graceMs) {
1266
+ const bloatResult = Grid.isGridBloated(bot.manager, bot.manager.orders);
1267
+ if (bloatResult.bloated) {
1268
+ const d = bloatResult.details;
1269
+ bot._log(`[GRID-BLOAT] Grid size ${d.gridSize} still exceeds expected maximum ${d.maxAllowed} ` +
1270
+ `after grace period. Triggering structural resync.`, 'warn');
1271
+ bot.manager.requestStructuralGridResync('grid-bloat-persistent', { reason: `Grid size ${d.gridSize} still exceeds max ${d.maxAllowed} after grace` }).catch((err) => {
1272
+ bot.manager?.logger?.log?.(`[GRID-BLOAT] Structural resync request failed: ${err.message}`, 'error');
1273
+ });
1274
+ }
1275
+ else {
1276
+ delete bot.manager._gridBloatDetectedAt;
1277
+ bot._log('[GRID-BLOAT] Grid size returned to normal. Clearing bloat flag.', 'info');
1278
+ }
1279
+ }
1280
+ }
1281
+ // Gap 4: Periodic lightweight consistency check. Fetches open order count
1282
+ // from chain and compares to grid active order count. Triggers a targeted
1283
+ // sync when significant divergence is detected. Runs at most once per
1284
+ // LIGHTWEIGHT_SYNC_CHECK_INTERVAL_MS to limit blockchain query load.
1285
+ // Skip if the COW pipeline has active CREATEs in flight to avoid racing
1286
+ // with batch broadcasts — transient mismatches are expected during a COW cycle.
1287
+ if (!bot._batchInFlight &&
1288
+ !(bot.manager?._pendingBroadcasts?.size > 0) &&
1289
+ (bot._lightweightSyncCheckAt == null || Date.now() - bot._lightweightSyncCheckAt >= TIMING.LIGHTWEIGHT_SYNC_CHECK_INTERVAL_MS)) {
1290
+ bot._lightweightSyncCheckAt = Date.now();
1291
+ try {
1292
+ const chainOpenOrdersResult = await chainOrders.readOpenOrders(bot.accountId);
1293
+ const chainOrdersCount = chainOpenOrdersResult.length;
1294
+ const gridActive = Array.from(bot.manager.orders.values()).filter((o) => isOrderOnChain(o)).length;
1295
+ const diff = Math.abs(chainOrdersCount - gridActive);
1296
+ if (diff > 2) {
1297
+ bot._log(`[LIGHTWEIGHT-SYNC] Order count mismatch: chain=${chainOrdersCount}, grid=${gridActive} ` +
1298
+ `(diff=${diff}). Triggering targeted sync to reconcile.`, 'warn');
1299
+ if (bot.manager?.synchronizeWithChain) {
1300
+ await bot.manager.synchronizeWithChain(chainOpenOrdersResult, 'readOpenOrders', {
1301
+ fillLockAlreadyHeld: true
1302
+ });
1303
+ }
1304
+ }
1305
+ else if (diff > 0) {
1306
+ bot._log(`[LIGHTWEIGHT-SYNC] Order count mismatch: chain=${chainOrdersCount}, grid=${gridActive} ` +
1307
+ `(diff=${diff}). Minor divergence — expected during normal operation.`, 'debug');
1308
+ }
1309
+ }
1310
+ catch (e) {
1311
+ bot._log(`[LIGHTWEIGHT-SYNC] Check failed: ${e.message}`, 'debug');
1312
+ }
1313
+ }
1256
1314
  // Process any price corrections queued by prior sync operations before
1257
1315
  // the pipeline gate. Pending corrections block isPipelineEmpty, and no
1258
1316
  // other code path clears them outside of _consumeFillQueue (which only
@@ -1339,6 +1397,44 @@ async function executeMaintenanceLogic(bot, context) {
1339
1397
  }
1340
1398
  }
1341
1399
  }
1400
+ /**
1401
+ * Cancel a single order, retrying on alternate BitShares nodes when the
1402
+ * credential daemon reports BROADCAST_DEADLINE. The daemon already retries
1403
+ * 3× internally against its own node list; if it still hits the deadline
1404
+ * the node itself may be unhealthy. We hand the full healthy-node list
1405
+ * (excluding the primary) to the credential client, which cycles through
1406
+ * the fallbacks with a 1 s gap and raises the last BroadcastUncertainError
1407
+ * only when all nodes are exhausted.
1408
+ *
1409
+ * The daemon's session is validated early in processRequest (before the
1410
+ * broadcast), so a BROADCAST_DEADLINE reply cannot be caused by an expired
1411
+ * session — re-using the original signing token is correct.
1412
+ *
1413
+ * @param {import('./dexbot_class').DEXBot} bot
1414
+ * @param {import('./types').Order} order
1415
+ * @returns {Promise<*>} Result from chainOrders.cancelOrder
1416
+ */
1417
+ async function cancelOrderWithNodeFallback(bot, order) {
1418
+ try {
1419
+ const nodeManager = getNodeManager();
1420
+ const nodes = nodeManager.getHealthyNodes();
1421
+ const fallbackNodes = nodes.length > 1 ? nodes.slice(1) : undefined;
1422
+ return await chainOrders.cancelOrder(bot.account, bot.privateKey, order.orderId, fallbackNodes
1423
+ ? {
1424
+ fallbackNodes,
1425
+ onNodeFailed: (nodeUrl) => {
1426
+ nodeManager.reportNodeFailure(nodeUrl, 'BROADCAST_DEADLINE', 'broadcast');
1427
+ },
1428
+ }
1429
+ : {});
1430
+ }
1431
+ catch (err) {
1432
+ if (err instanceof BroadcastUncertainError) {
1433
+ bot._warn(`[DUST] All nodes exhausted for ${order.id} (${order.orderId})`);
1434
+ }
1435
+ throw err;
1436
+ }
1437
+ }
1342
1438
  /**
1343
1439
  * Cancel dust orders immediately — no delay, no timer, no maps.
1344
1440
  * Each dust order is cancelled on chain and its slot is rotated through
@@ -1360,12 +1456,12 @@ async function cancelDustOrders(bot, { buy: buyDust = [], sell: sellDust = [], f
1360
1456
  if (!order.orderId)
1361
1457
  continue;
1362
1458
  try {
1363
- const cancelResult = await chainOrders.cancelOrder(bot.account, bot.privateKey, order.orderId);
1459
+ const cancelResult = await cancelOrderWithNodeFallback(bot, order);
1364
1460
  try {
1365
1461
  if (cancelResult?.verifiedAfterFailure) {
1366
1462
  const accountRef = bot.accountId || bot.account;
1367
1463
  const chainOpenOrders = await chainOrders.readOpenOrders(accountRef);
1368
- await bot.manager.synchronizeWithChain(chainOpenOrders, 'readOpenOrders', { fillLockAlreadyHeld: true });
1464
+ await bot.manager.synchronizeWithChain(chainOpenOrders, 'readOpenOrders', { fillLockAlreadyHeld: true, protectCommittedOrders: true });
1369
1465
  }
1370
1466
  else {
1371
1467
  await bot.manager.synchronizeWithChain({ orderId: order.orderId, clearSize: true }, 'cancelOrder', { fillLockAlreadyHeld });