dexbot 1.6.2 → 1.6.4

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 (212) hide show
  1. package/CHANGELOG.md +53 -3
  2. package/README.md +11 -7
  3. package/analysis/README.md +20 -14
  4. package/analysis/account_resolver.ts +171 -0
  5. package/analysis/ama_fitting/analyze_lambda_vs_slow.ts +2 -5
  6. package/analysis/ama_fitting/package.json +1 -1
  7. package/analysis/bot_usage/discover_bot_accounts.ts +20 -27
  8. package/analysis/chain_pool.ts +47 -0
  9. package/analysis/chart_utils.ts +33 -20
  10. package/analysis/derivative_chart_generator.ts +2 -3
  11. package/analysis/fills_source.ts +234 -0
  12. package/analysis/grid_correction_check.ts +104 -244
  13. package/analysis/results/ama_sweep_results_lp_pool_133_1h.json +2455 -0
  14. package/analysis/results/bot_fitting_results_lp_pool_133_1h.json +218 -0
  15. package/analysis/trade_profitability.ts +169 -304
  16. package/analysis/tradingview/README.md +2 -2
  17. package/analysis/tradingview/h-bts_tradingview.html +1570 -0
  18. package/analysis/tradingview/t-bts_tradingview.html +1570 -0
  19. package/analysis/tradingview/tradingview_uplot_chart_generator.ts +3 -4
  20. package/analysis/trend_detection/dynamic_weight_chart_generator.ts +2 -3
  21. package/analysis/trend_detection/kalman_chart_generator.ts +2 -3
  22. package/analysis/trend_detection/package.json +1 -1
  23. package/analysis/trend_detection/regime_chart_generator.ts +2 -3
  24. package/analysis/trend_detection/volatility_chart_generator.ts +2 -3
  25. package/claw/package.json +1 -1
  26. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  27. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  28. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  29. package/dist/analysis/account_resolver.d.ts +43 -0
  30. package/dist/analysis/account_resolver.d.ts.map +1 -0
  31. package/dist/analysis/account_resolver.js +137 -0
  32. package/dist/analysis/account_resolver.js.map +1 -0
  33. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -1
  34. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +2 -4
  35. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -1
  36. package/dist/analysis/bot_usage/discover_bot_accounts.js +20 -28
  37. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -1
  38. package/dist/analysis/chain_pool.d.ts +10 -0
  39. package/dist/analysis/chain_pool.d.ts.map +1 -0
  40. package/dist/analysis/chain_pool.js +47 -0
  41. package/dist/analysis/chain_pool.js.map +1 -0
  42. package/dist/analysis/chart_utils.d.ts +14 -1
  43. package/dist/analysis/chart_utils.d.ts.map +1 -1
  44. package/dist/analysis/chart_utils.js +32 -22
  45. package/dist/analysis/chart_utils.js.map +1 -1
  46. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -1
  47. package/dist/analysis/derivative_chart_generator.js +2 -3
  48. package/dist/analysis/derivative_chart_generator.js.map +1 -1
  49. package/dist/analysis/fills_source.d.ts +79 -0
  50. package/dist/analysis/fills_source.d.ts.map +1 -0
  51. package/dist/analysis/fills_source.js +186 -0
  52. package/dist/analysis/fills_source.js.map +1 -0
  53. package/dist/analysis/grid_correction_check.d.ts +4 -20
  54. package/dist/analysis/grid_correction_check.d.ts.map +1 -1
  55. package/dist/analysis/grid_correction_check.js +95 -248
  56. package/dist/analysis/grid_correction_check.js.map +1 -1
  57. package/dist/analysis/trade_profitability.d.ts +18 -19
  58. package/dist/analysis/trade_profitability.d.ts.map +1 -1
  59. package/dist/analysis/trade_profitability.js +136 -280
  60. package/dist/analysis/trade_profitability.js.map +1 -1
  61. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
  62. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +3 -4
  63. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
  64. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -1
  65. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +2 -3
  66. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -1
  67. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -1
  68. package/dist/analysis/trend_detection/kalman_chart_generator.js +2 -3
  69. package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -1
  70. package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -1
  71. package/dist/analysis/trend_detection/regime_chart_generator.js +2 -3
  72. package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -1
  73. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -1
  74. package/dist/analysis/trend_detection/volatility_chart_generator.js +2 -3
  75. package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -1
  76. package/dist/market_adapter/lp_chart_core.d.ts.map +1 -1
  77. package/dist/market_adapter/lp_chart_core.js +2 -3
  78. package/dist/market_adapter/lp_chart_core.js.map +1 -1
  79. package/dist/modules/account_bots.d.ts +1 -18
  80. package/dist/modules/account_bots.d.ts.map +1 -1
  81. package/dist/modules/account_bots.js +1 -1
  82. package/dist/modules/account_bots.js.map +1 -1
  83. package/dist/modules/bitshares-native/serial/operations.d.ts +1 -84
  84. package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -1
  85. package/dist/modules/bitshares-native/serial/operations.js +1 -38
  86. package/dist/modules/bitshares-native/serial/operations.js.map +1 -1
  87. package/dist/modules/cli_colors.d.ts +0 -1
  88. package/dist/modules/cli_colors.d.ts.map +1 -1
  89. package/dist/modules/constants.js +5 -5
  90. package/dist/modules/constants.js.map +1 -1
  91. package/dist/modules/credential_policy.d.ts +1 -25
  92. package/dist/modules/credential_policy.d.ts.map +1 -1
  93. package/dist/modules/credential_policy.js +1 -1
  94. package/dist/modules/credential_policy.js.map +1 -1
  95. package/dist/modules/credential_runtime.d.ts +1 -6
  96. package/dist/modules/credential_runtime.d.ts.map +1 -1
  97. package/dist/modules/credential_runtime.js +1 -1
  98. package/dist/modules/credential_runtime.js.map +1 -1
  99. package/dist/modules/credential_session_cache.d.ts +1 -5
  100. package/dist/modules/credential_session_cache.d.ts.map +1 -1
  101. package/dist/modules/credential_session_cache.js +1 -1
  102. package/dist/modules/credential_session_cache.js.map +1 -1
  103. package/dist/modules/crypto/pure_secp256k1.d.ts +1 -2
  104. package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -1
  105. package/dist/modules/crypto/pure_secp256k1.js +1 -1
  106. package/dist/modules/crypto/pure_secp256k1.js.map +1 -1
  107. package/dist/modules/dexbot_class.d.ts +9 -8
  108. package/dist/modules/dexbot_class.d.ts.map +1 -1
  109. package/dist/modules/dexbot_class.js +9 -8
  110. package/dist/modules/dexbot_class.js.map +1 -1
  111. package/dist/modules/dexbot_cow_runtime.d.ts +87 -7
  112. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  113. package/dist/modules/dexbot_cow_runtime.js +489 -14
  114. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  115. package/dist/modules/dexbot_fill_runtime.d.ts +1 -17
  116. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
  117. package/dist/modules/dexbot_fill_runtime.js +1 -1
  118. package/dist/modules/dexbot_fill_runtime.js.map +1 -1
  119. package/dist/modules/dexbot_maintenance_runtime.d.ts +1 -1
  120. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  121. package/dist/modules/dexbot_maintenance_runtime.js +21 -5
  122. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  123. package/dist/modules/dexbot_state_recovery.d.ts +1 -7
  124. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  125. package/dist/modules/dexbot_state_recovery.js +1 -1
  126. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  127. package/dist/modules/launcher/adapter_requirement.d.ts +1 -5
  128. package/dist/modules/launcher/adapter_requirement.d.ts.map +1 -1
  129. package/dist/modules/launcher/adapter_requirement.js +1 -1
  130. package/dist/modules/launcher/adapter_requirement.js.map +1 -1
  131. package/dist/modules/launcher/bot_supervisor.d.ts +1 -6
  132. package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
  133. package/dist/modules/launcher/bot_supervisor.js +1 -1
  134. package/dist/modules/launcher/bot_supervisor.js.map +1 -1
  135. package/dist/modules/launcher/foreign_cred_daemon.d.ts +1 -3
  136. package/dist/modules/launcher/foreign_cred_daemon.d.ts.map +1 -1
  137. package/dist/modules/launcher/foreign_cred_daemon.js +1 -1
  138. package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -1
  139. package/dist/modules/launcher/launch_modes.d.ts +1 -2
  140. package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
  141. package/dist/modules/launcher/launch_modes.js +1 -1
  142. package/dist/modules/launcher/launch_modes.js.map +1 -1
  143. package/dist/modules/launcher/market_adapter_runtime.d.ts +1 -3
  144. package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
  145. package/dist/modules/launcher/market_adapter_runtime.js +1 -1
  146. package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
  147. package/dist/modules/launcher/monolithic_runtime.d.ts +1 -5
  148. package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
  149. package/dist/modules/launcher/monolithic_runtime.js +1 -1
  150. package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
  151. package/dist/modules/launcher/status_reporting.d.ts +1 -2
  152. package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
  153. package/dist/modules/launcher/status_reporting.js +1 -1
  154. package/dist/modules/launcher/status_reporting.js.map +1 -1
  155. package/dist/modules/order/export.d.ts +1 -8
  156. package/dist/modules/order/export.d.ts.map +1 -1
  157. package/dist/modules/order/export.js +1 -1
  158. package/dist/modules/order/export.js.map +1 -1
  159. package/dist/modules/order/grid.d.ts +7 -0
  160. package/dist/modules/order/grid.d.ts.map +1 -1
  161. package/dist/modules/order/grid.js +52 -98
  162. package/dist/modules/order/grid.js.map +1 -1
  163. package/dist/modules/order/grid_reconcile_internal.d.ts +1 -10
  164. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  165. package/dist/modules/order/grid_reconcile_internal.js +2 -2
  166. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  167. package/dist/modules/order/manager.d.ts +10 -2
  168. package/dist/modules/order/manager.d.ts.map +1 -1
  169. package/dist/modules/order/manager.js +20 -7
  170. package/dist/modules/order/manager.js.map +1 -1
  171. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  172. package/dist/modules/order/sync_engine.js +25 -20
  173. package/dist/modules/order/sync_engine.js.map +1 -1
  174. package/dist/modules/order/utils/math.d.ts +1 -10
  175. package/dist/modules/order/utils/math.d.ts.map +1 -1
  176. package/dist/modules/order/utils/math.js +1 -1
  177. package/dist/modules/order/utils/math.js.map +1 -1
  178. package/dist/modules/order/utils/order.d.ts +45 -7
  179. package/dist/modules/order/utils/order.d.ts.map +1 -1
  180. package/dist/modules/order/utils/order.js +160 -15
  181. package/dist/modules/order/utils/order.js.map +1 -1
  182. package/dist/modules/order/utils/system.d.ts +0 -15
  183. package/dist/modules/order/utils/system.d.ts.map +1 -1
  184. package/dist/modules/order/utils/system.js +2 -2
  185. package/dist/modules/order/utils/system.js.map +1 -1
  186. package/dist/modules/process_discovery.d.ts +0 -3
  187. package/dist/modules/process_discovery.d.ts.map +1 -1
  188. package/dist/modules/process_discovery.js +1 -1
  189. package/dist/modules/process_discovery.js.map +1 -1
  190. package/dist/modules/utils/chain_logs.d.ts +1 -2
  191. package/dist/modules/utils/chain_logs.d.ts.map +1 -1
  192. package/dist/modules/utils/chain_logs.js +1 -1
  193. package/dist/modules/utils/chain_logs.js.map +1 -1
  194. package/dist/scripts/analyze-git.js +2 -2
  195. package/dist/scripts/analyze-git.js.map +1 -1
  196. package/dist/scripts/update.js +46 -31
  197. package/dist/scripts/update.js.map +1 -1
  198. package/docs/BITSHARES_ONBOARDING.md +110 -40
  199. package/docs/COPY_ON_WRITE_MASTER_PLAN.md +10 -207
  200. package/docs/COW_INVARIANTS.md +16 -10
  201. package/docs/DEXBOT_COMPARISON.md +3 -3
  202. package/docs/EVOLUTION.md +75 -29
  203. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +6 -6
  204. package/docs/GRID_RECALCULATION.md +14 -6
  205. package/docs/GRID_RECONCILE.md +28 -25
  206. package/docs/LIFECYCLE.md +12 -11
  207. package/docs/README.md +48 -42
  208. package/docs/architecture.md +19 -30
  209. package/docs/developer_guide.md +3 -3
  210. package/package.json +1 -1
  211. package/scripts/git-viewer.sh +1 -1
  212. package/tests/README.md +10 -1
@@ -35,65 +35,11 @@ import fs from 'node:fs';
35
35
  import { pathToFileURL } from 'node:url';
36
36
  import * as KC from '../market_adapter/core/kibana_client.js';
37
37
  import * as C from '../modules/constants.js';
38
- import { loadBotMeta, loadBotSettings, computeBotKey, persistBotAccountId } from './bot_key_utils.js';
38
+ import { loadBotSettings, computeBotKey } from './bot_key_utils.js';
39
+ import { resolveBotAccount } from './account_resolver.js';
40
+ import { BTS_ID, assetPrec, assetSymbol, fetchAllFills, resolveAssetPrecisions, toReal, } from './fills_source.js';
39
41
  const { kibanaSearch, DEFAULT_CONFIG: BASE_CONFIG } = KC;
40
- const OP_FILL_ORDER = 4;
41
- const BTS_ID = '1.3.0';
42
- const ASSETS = {
43
- '1.3.0': { symbol: 'BTS', precision: 5 },
44
- '1.3.118': { symbol: 'GBP', precision: 4 },
45
- '1.3.119': { symbol: 'JPY', precision: 2 },
46
- '1.3.120': { symbol: 'EUR', precision: 4 },
47
- '1.3.1325': { symbol: 'RUBLE', precision: 5 },
48
- '1.3.2512': { symbol: 'EVRAZ', precision: 4 },
49
- '1.3.3291': { symbol: 'TWENTIX', precision: 5 },
50
- '1.3.4099': { symbol: 'XBTSX.STH', precision: 6 },
51
- '1.3.4156': { symbol: 'XBTSX.DOGE', precision: 5 },
52
- '1.3.4157': { symbol: 'XBTSX.BTC', precision: 8 },
53
- '1.3.4159': { symbol: 'XBTSX.LTC', precision: 8 },
54
- '1.3.4176': { symbol: 'XBTSX.DASH', precision: 8 },
55
- '1.3.4274': { symbol: 'XBTSX.BCH', precision: 8 },
56
- '1.3.4760': { symbol: 'XBTSX.ETH', precision: 7 },
57
- '1.3.5537': { symbol: 'IOB.XRP', precision: 4 },
58
- '1.3.5541': { symbol: 'XBTSX.BNB', precision: 7 },
59
- '1.3.5589': { symbol: 'XBTSX.USDT', precision: 6 },
60
- '1.3.5641': { symbol: 'HONEST.CNY', precision: 4 },
61
- '1.3.5649': { symbol: 'HONEST.USD', precision: 4 },
62
- '1.3.5650': { symbol: 'HONEST.BTC', precision: 8 },
63
- '1.3.5659': { symbol: 'HONEST.ETH', precision: 6 },
64
- '1.3.5870': { symbol: 'XBTSX.FIL', precision: 6 },
65
- '1.3.5887': { symbol: 'XBTSX.RUB', precision: 4 },
66
- '1.3.5902': { symbol: 'XBTSX.USDC', precision: 6 },
67
- '1.3.6013': { symbol: 'XBTSX.HIVE', precision: 6 },
68
- '1.3.6124': { symbol: 'XBTSX.AVAX', precision: 6 },
69
- '1.3.6139': { symbol: 'XBTSX.XAUT', precision: 6 },
70
- '1.3.6166': { symbol: 'XBTSX.MATIC', precision: 5 },
71
- '1.3.6241': { symbol: 'XBTSX.ETC', precision: 7 },
72
- '1.3.6268': { symbol: 'BTWTY.EOS', precision: 4 },
73
- '1.3.6301': { symbol: 'HONEST.MONEY', precision: 8 },
74
- '1.3.6304': { symbol: 'HONEST.ADA', precision: 8 },
75
- '1.3.6305': { symbol: 'HONEST.DOT', precision: 8 },
76
- '1.3.6309': { symbol: 'HONEST.ATOM', precision: 8 },
77
- '1.3.6311': { symbol: 'HONEST.ALGO', precision: 8 },
78
- '1.3.6312': { symbol: 'HONEST.FIL', precision: 8 },
79
- '1.3.6313': { symbol: 'HONEST.EOS', precision: 8 },
80
- '1.3.6315': { symbol: 'HONEST.EUR', precision: 4 },
81
- '1.3.6316': { symbol: 'HONEST.GBP', precision: 4 },
82
- '1.3.6317': { symbol: 'HONEST.JPY', precision: 4 },
83
- '1.3.6444': { symbol: 'IOB.XLM', precision: 4 },
84
- '1.3.6573': { symbol: 'XBTSX.DAI', precision: 6 },
85
- '1.3.6620': { symbol: 'XBTSX.A', precision: 6 },
86
- '1.3.6627': { symbol: 'XBTSX.LINK', precision: 6 },
87
- };
88
- const resolvedPrecisions = {};
89
- function assetSymbol(id) { return ASSETS[id]?.symbol ?? id; }
90
- function assetPrec(id) { return ASSETS[id]?.precision ?? resolvedPrecisions[id]; }
91
- function toReal(amount, assetId) {
92
- const p = assetPrec(assetId);
93
- if (p === undefined)
94
- return NaN;
95
- return amount / Math.pow(10, p);
96
- }
42
+ const OP_LIMIT_ORDER_UPDATE = 77;
97
43
  // ─── LAST-FILL-GUARD helper (1:1 with dexbot_cow_runtime.ts) ─────────────────
98
44
  /**
99
45
  * LAST-FILL-GUARD helper — pivot ± halfIncrement (replaces price-tolerance).
@@ -166,7 +112,6 @@ Options:
166
112
  --refresh-account Force re-resolution of preferredAccount and update the
167
113
  stored accountId when it changed (default: reuse the
168
114
  stored accountId with no chain lookup)
169
- --node <url> BitShares node URL for account / precision resolution
170
115
  --increment <pct> Grid increment percent (default: from bot config or ${Number(C?.DEFAULT_CONFIG?.incrementPercent ?? 0.5)})
171
116
  --tolerance <pct> Deprecated alias for --increment (kept for compat, prefer --increment)
172
117
  --per-fill Check at fill granularity (default: per-order aggregated)
@@ -211,7 +156,6 @@ function parseArgs() {
211
156
  account: null,
212
157
  lookup: false,
213
158
  refreshAccount: false,
214
- node: C.NODE_MANAGEMENT.DEFAULT_NODES[0],
215
159
  perFill: false,
216
160
  includeCrossPair: false,
217
161
  incrementPercent: null,
@@ -242,9 +186,6 @@ function parseArgs() {
242
186
  case '--refresh-account':
243
187
  opts.refreshAccount = true;
244
188
  break;
245
- case '--node':
246
- opts.node = args[++i];
247
- break;
248
189
  case '--per-fill':
249
190
  opts.perFill = true;
250
191
  break;
@@ -320,169 +261,49 @@ function resolveTimeRange(opts) {
320
261
  const label = `${gte} → ${lte}`;
321
262
  return { gte, lte, label };
322
263
  }
323
- // ─── Account resolution ───────────────────────────────────────────────────────
324
- async function resolveAccountId(name, nodeUrl) {
325
- const { createReadOnlyClient } = await import('../modules/bitshares-native/index.js');
326
- const client = createReadOnlyClient({ nodes: [nodeUrl] });
327
- const prevLevel = process.env.LOG_LEVEL;
328
- process.env.LOG_LEVEL = 'warn';
329
- try {
330
- await client.connect();
331
- const accounts = await client.db('lookup_account_names', [[name]]);
332
- if (Array.isArray(accounts) && accounts[0]?.id)
333
- return accounts[0].id;
334
- return null;
335
- }
336
- catch (e) {
337
- console.warn(` [warn] Account resolution failed: ${e.message}`);
338
- return null;
339
- }
340
- finally {
341
- try {
342
- client.disconnect();
343
- }
344
- catch (_) { }
345
- process.env.LOG_LEVEL = prevLevel;
346
- }
347
- }
348
- async function resolveAccountForBot(botKey, overrideAccount, nodeUrl, doRefresh) {
349
- const botMeta = loadBotMeta(botKey);
350
- if (!botMeta && !overrideAccount) {
351
- console.error(`Error: bot key '${botKey}' not found in profiles/bots.json and no --account provided.`);
352
- console.error(`Use --list-bots to see available keys, or pass --account <1.2.x> explicitly.`);
353
- process.exit(1);
354
- }
355
- // An explicit --account always wins and is never persisted.
356
- if (overrideAccount) {
357
- if (/^1\.2\.\d+$/.test(String(overrideAccount))) {
358
- return { accountId: String(overrideAccount), botMeta };
359
- }
360
- console.log(` Resolving account name '${overrideAccount}'...`);
361
- const resolvedOverride = await resolveAccountId(String(overrideAccount), nodeUrl);
362
- if (!resolvedOverride) {
363
- console.error(`Error: failed to resolve --account '${overrideAccount}' to 1.2.x`);
364
- process.exit(1);
365
- }
366
- console.log(` → ${resolvedOverride}`);
367
- return { accountId: String(resolvedOverride), botMeta };
368
- }
369
- const prefRaw = botMeta?.preferredAccount != null ? String(botMeta.preferredAccount) : null;
370
- const prefIsId = !!prefRaw && /^1\.2\.\d+$/.test(prefRaw);
371
- const storedId = /^1\.2\.\d+$/.test(String(botMeta?.accountId ?? '')) ? String(botMeta.accountId) : null;
372
- // An explicit 1.2.x preferredAccount is authoritative: the stored accountId
373
- // is a derived cache and must never override it. Self-heal the cache.
374
- if (prefIsId) {
375
- if (storedId && storedId !== prefRaw && persistBotAccountId(botKey, prefRaw)) {
376
- console.log(` Updated stale stored accountId ${storedId} → ${prefRaw} from preferredAccount`);
377
- }
378
- return { accountId: prefRaw, botMeta };
379
- }
380
- if (!prefRaw) {
381
- console.error(`Error: bot '${botKey}' has no preferredAccount and no --account provided.`);
382
- process.exit(1);
383
- }
384
- // Name + fresh-enough cache + no refresh requested: offline-friendly fast path.
385
- if (storedId && !doRefresh) {
386
- console.log(` Using stored accountId ${storedId} from profiles/bots.json (no lookup needed; pass --refresh-account to re-verify)`);
387
- return { accountId: storedId, botMeta };
388
- }
389
- // No cache, or --refresh-account: resolve the name on-chain.
390
- console.log(` Resolving account name '${prefRaw}'...`);
391
- const resolved = await resolveAccountId(prefRaw, nodeUrl);
392
- if (!resolved) {
393
- console.error(`Error: failed to resolve account name '${prefRaw}' to 1.2.x`);
394
- process.exit(1);
395
- }
396
- console.log(` → ${resolved}`);
397
- if (!storedId && persistBotAccountId(botKey, resolved)) {
398
- console.log(` Stored accountId ${resolved} in profiles/bots.json for '${botKey}'`);
399
- }
400
- else if (storedId && storedId !== resolved && persistBotAccountId(botKey, resolved)) {
401
- console.log(` Updated stored accountId ${storedId} → ${resolved} in profiles/bots.json for '${botKey}'`);
402
- }
403
- else if (storedId === resolved) {
404
- console.log(` Stored accountId ${resolved} confirmed up to date`);
405
- }
406
- return { accountId: String(resolved), botMeta };
407
- }
408
- // ─── Asset precision resolution ───────────────────────────────────────────────
409
- async function resolveAssetPrecisions(fills, nodeUrl) {
410
- const unknownIds = new Set();
411
- for (const f of fills) {
412
- for (const id of [f.pays.asset_id, f.receives.asset_id, f.fee.asset_id]) {
413
- if (id !== BTS_ID && !(id in ASSETS) && !(id in resolvedPrecisions))
414
- unknownIds.add(id);
415
- }
416
- }
417
- if (unknownIds.size === 0 || !nodeUrl)
418
- return;
419
- const ids = [...unknownIds];
420
- console.log(` Resolving ${ids.length} unknown asset(s) from blockchain...`);
421
- const { createReadOnlyClient } = await import('../modules/bitshares-native/index.js');
422
- const client = createReadOnlyClient({ nodes: [nodeUrl] });
423
- try {
424
- await client.connect();
425
- const assets = await client.db('get_assets', [ids]);
426
- if (Array.isArray(assets)) {
427
- for (const asset of assets) {
428
- if (asset?.id && asset.precision != null) {
429
- resolvedPrecisions[asset.id] = asset.precision;
430
- console.log(` ${asset.id} → ${asset.symbol || '?'} (precision ${asset.precision})`);
431
- }
432
- }
433
- }
434
- const missing = ids.filter(id => !(id in resolvedPrecisions));
435
- if (missing.length > 0)
436
- console.warn(` [warn] ${missing.length} asset(s) not found on chain: ${missing.join(', ')}`);
437
- }
438
- catch (e) {
439
- console.warn(` [warn] Asset resolution failed: ${e.message}`);
440
- }
441
- finally {
442
- try {
443
- client.disconnect();
444
- }
445
- catch (_) { }
264
+ // ─── Account resolution errors ────────────────────────────────────────────────
265
+ /** Map a shared account-resolver failure onto this tool's operator-facing hint. */
266
+ function reportAccountFailure(resolved, opts) {
267
+ switch (resolved.reason) {
268
+ case 'bot-not-found':
269
+ console.error(`Error: bot key '${opts.botKey}' not found in profiles/bots.json and no --account provided.`);
270
+ console.error('Use --list-bots to see available keys, or pass --account <1.2.x> explicitly.');
271
+ break;
272
+ case 'override-unresolved':
273
+ console.error(`Error: failed to resolve --account '${opts.account}' to 1.2.x`);
274
+ break;
275
+ case 'no-preferred-account':
276
+ console.error(`Error: bot '${opts.botKey}' has no preferredAccount and no --account provided.`);
277
+ break;
278
+ default:
279
+ console.error(`Error: failed to resolve account name '${resolved?.botMeta?.preferredAccount ?? opts.botKey}' to 1.2.x`);
446
280
  }
447
281
  }
448
282
  // ─── Kibana fetch ─────────────────────────────────────────────────────────────
449
- function buildFillQuery(accountId, gte, lte, size) {
450
- return {
451
- size,
452
- track_total_hits: false,
453
- _source: [
454
- 'block_data.block_time',
455
- 'block_data.block_num',
456
- 'operation_id_num',
457
- 'operation_history.op_object.pays',
458
- 'operation_history.op_object.receives',
459
- 'operation_history.op_object.fee',
460
- 'operation_history.op_object.order_id',
461
- 'operation_history.op_object.account_id',
462
- 'operation_history.op_object.is_maker',
463
- ],
464
- query: {
465
- bool: {
466
- filter: [
467
- { term: { operation_type: OP_FILL_ORDER } },
468
- { term: { 'operation_history.op_object.account_id.keyword': accountId } },
469
- { range: { 'block_data.block_time': { gte, lte } } },
470
- ],
471
- },
472
- },
473
- sort: [
474
- { 'block_data.block_time': { order: 'asc' } },
475
- { operation_id_num: { order: 'asc' } },
476
- ],
477
- };
478
- }
479
- async function fetchAllFills(config, accountId, gte, lte) {
283
+ async function fetchAllOrderUpdates(config, accountId, gte, lte) {
480
284
  const pageSize = 10000;
481
- const fills = [];
285
+ const updates = [];
482
286
  let searchAfter = null;
483
287
  const cfg = { ...BASE_CONFIG, timeout: 60000, ...config };
484
288
  while (true) {
485
- const query = buildFillQuery(accountId, gte, lte, pageSize);
289
+ const query = {
290
+ size: pageSize,
291
+ track_total_hits: false,
292
+ _source: [
293
+ 'block_data.block_num', 'operation_id_num',
294
+ 'operation_history.op_object.order',
295
+ 'operation_history.op_object.seller',
296
+ ],
297
+ query: { bool: { filter: [
298
+ { term: { operation_type: OP_LIMIT_ORDER_UPDATE } },
299
+ { term: { 'operation_history.op_object.seller.keyword': accountId } },
300
+ { range: { 'block_data.block_time': { gte, lte } } },
301
+ ] } },
302
+ sort: [
303
+ { 'block_data.block_num': { order: 'asc' } },
304
+ { operation_id_num: { order: 'asc' } },
305
+ ],
306
+ };
486
307
  if (searchAfter)
487
308
  query.search_after = searchAfter;
488
309
  const result = await kibanaSearch(cfg, query);
@@ -490,30 +311,21 @@ async function fetchAllFills(config, accountId, gte, lte) {
490
311
  if (!hits.length)
491
312
  break;
492
313
  for (const hit of hits) {
493
- const src = hit?._source;
494
- const op = src?.operation_history?.op_object;
495
- if (!op || !op.pays || !op.receives)
314
+ const source = hit?._source || {};
315
+ const op = source.operation_history?.op_object || {};
316
+ const orderId = op.order;
317
+ if (!orderId)
496
318
  continue;
497
- fills.push({
498
- time: src.block_data?.block_time ?? '',
499
- blockNum: src.block_data?.block_num ?? 0,
500
- opNum: Number(src.operation_id_num ?? 0),
501
- orderId: op.order_id ?? '',
502
- accountId: op.account_id ?? '',
503
- pays: { amount: Number(op.pays.amount ?? 0), asset_id: op.pays.asset_id ?? '' },
504
- receives: { amount: Number(op.receives.amount ?? 0), asset_id: op.receives.asset_id ?? '' },
505
- fee: { amount: Number(op.fee?.amount ?? 0), asset_id: op.fee?.asset_id ?? '' },
506
- isMaker: op.is_maker ?? false,
507
- sort: hit.sort,
508
- });
319
+ const blockNum = Number(source.block_data?.block_num ?? 0);
320
+ const opNum = Number(source.operation_id_num ?? 0);
321
+ updates.push({ orderId, sequence: blockNum * 1e6 + opNum });
509
322
  }
510
- if (hits.length < pageSize)
511
- break;
512
- searchAfter = hits[hits.length - 1].sort;
513
- if (!Array.isArray(searchAfter))
323
+ const last = hits[hits.length - 1];
324
+ searchAfter = last?.sort;
325
+ if (!searchAfter || hits.length < pageSize)
514
326
  break;
515
327
  }
516
- return fills;
328
+ return updates;
517
329
  }
518
330
  // ─── Fill classification ─────────────────────────────────────────────────────
519
331
  function classifyFills(fills) {
@@ -586,11 +398,33 @@ function classifyFills(fills) {
586
398
  }
587
399
  return { trades, skipped };
588
400
  }
589
- // ─── Per-order aggregation (collapses multi-fill orders to weighted avg price) ──
590
- function aggregateByOrder(trades) {
401
+ // ─── Per-order/price-epoch aggregation ───────────────────────────────────────
402
+ // Collapses partial fills at one order lifetime, but never mixes fills from
403
+ // different native limit_order_update repricings of the same order ID.
404
+ function aggregateByOrder(trades, updates = []) {
405
+ const updatesByOrder = new Map();
406
+ for (const update of updates) {
407
+ const list = updatesByOrder.get(update.orderId) || [];
408
+ list.push(update.sequence);
409
+ updatesByOrder.set(update.orderId, list);
410
+ }
411
+ for (const list of updatesByOrder.values())
412
+ list.sort((a, b) => a - b);
591
413
  const map = new Map();
592
414
  for (const t of trades) {
593
- const k = t.orderId || `__fill_${t.sequence}`;
415
+ // An update is ordered before the fills it can affect. The epoch is
416
+ // therefore the latest update sequence at or before this fill.
417
+ const orderUpdates = updatesByOrder.get(t.orderId) || [];
418
+ let epoch = 0;
419
+ for (const sequence of orderUpdates) {
420
+ if (sequence <= t.sequence)
421
+ epoch = sequence;
422
+ else
423
+ break;
424
+ }
425
+ const k = t.orderId
426
+ ? `${t.orderId}:${t.direction}:${t.baseAsset}:${t.quoteAsset}:${epoch}`
427
+ : `__fill_${t.sequence}`;
594
428
  if (!map.has(k))
595
429
  map.set(k, { trades: [] });
596
430
  map.get(k).trades.push(t);
@@ -842,18 +676,31 @@ async function main() {
842
676
  const { gte, lte, label } = resolveTimeRange(opts);
843
677
  console.log(`\nGrid correction check — bot-key: ${opts.botKey}`);
844
678
  console.log(`Range: ${label}`);
845
- const { accountId, botMeta } = await resolveAccountForBot(opts.botKey, opts.account, opts.node, opts.refreshAccount);
679
+ const resolvedAccount = await resolveBotAccount(opts.botKey, {
680
+ overrideAccount: opts.account,
681
+ refresh: opts.refreshAccount,
682
+ });
683
+ if (!resolvedAccount.accountId) {
684
+ reportAccountFailure(resolvedAccount, opts);
685
+ process.exit(1);
686
+ }
687
+ const accountId = resolvedAccount.accountId;
688
+ const botMeta = resolvedAccount.botMeta;
846
689
  console.log(`Account: ${accountId}${botMeta ? ` (${botMeta.assetA}/${botMeta.assetB})` : ''}`);
847
690
  const incrementPercent = resolveIncrementPercent(botMeta, opts.incrementPercent);
848
691
  console.log(`Increment: ${incrementPercent}% (halfInc ${incrementPercent / 2}%)${opts.incrementPercent == null && botMeta?.incrementPercent != null ? ' — from bot config' : opts.incrementPercent != null ? ' — from --increment' : ' — default'}`);
849
- console.log(`\nFetching fills from Kibana...`);
850
- const fills = await fetchAllFills({}, accountId, gte, lte);
692
+ console.log(`\nFetching fills and order updates from Kibana...`);
693
+ const [fills, orderUpdates] = await Promise.all([
694
+ fetchAllFills({}, accountId, gte, lte),
695
+ fetchAllOrderUpdates({}, accountId, gte, lte),
696
+ ]);
851
697
  console.log(` Fetched ${fills.length} fill_order operation(s)`);
698
+ console.log(` Fetched ${orderUpdates.length} limit_order_update operation(s)`);
852
699
  if (fills.length === 0) {
853
700
  console.log('\nNo fills in range — nothing to check.');
854
701
  process.exit(0);
855
702
  }
856
- await resolveAssetPrecisions(fills, opts.node);
703
+ await resolveAssetPrecisions(fills);
857
704
  const { trades, skipped } = classifyFills(fills);
858
705
  console.log(` Classified ${trades.length} trade(s)${skipped > 0 ? `, ${skipped} skipped (unknown precision)` : ''}`);
859
706
  if (trades.length < 2) {
@@ -876,8 +723,8 @@ async function main() {
876
723
  items = trades;
877
724
  }
878
725
  else {
879
- const orders = aggregateByOrder(trades);
880
- console.log(` Aggregated into ${orders.length} order(s) (multi-fill orders collapsed by weighted avg price)`);
726
+ const orders = aggregateByOrder(trades, orderUpdates);
727
+ console.log(` Aggregated into ${orders.length} order epoch(s) (partial fills collapsed; repriced orders kept separate)`);
881
728
  items = orders;
882
729
  }
883
730
  const { violations, checkedPairs, sameDirectionPairs } = detectViolations(items, opts.includeCrossPair, incrementPercent);
@@ -1 +1 @@
1
- {"version":3,"file":"grid_correction_check.js","sourceRoot":"","sources":["../../analysis/grid_correction_check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid_correction_check.js","sourceRoot":"","sources":["../../analysis/grid_correction_check.ts"],"names":[],"mappings":"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"}