dexbot 1.4.11 → 1.4.12

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 (497) hide show
  1. package/README.md +4 -4
  2. package/dist/analysis/chart_utils.d.ts.map +1 -1
  3. package/dist/analysis/chart_utils.js +9 -18
  4. package/dist/analysis/chart_utils.js.map +1 -1
  5. package/dist/analysis/math_utils.d.ts.map +1 -1
  6. package/dist/analysis/math_utils.js +6 -16
  7. package/dist/analysis/math_utils.js.map +1 -1
  8. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +1 -1
  9. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
  10. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +31 -38
  11. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
  12. package/dist/analysis/trend_detection/hurst_analyzer.js +7 -10
  13. package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -1
  14. package/dist/analysis/trend_detection/kalman_trend_analyzer.js +10 -14
  15. package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -1
  16. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +10 -15
  17. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -1
  18. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -10
  19. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -1
  20. package/dist/bot.d.ts.map +1 -1
  21. package/dist/bot.js +4 -12
  22. package/dist/bot.js.map +1 -1
  23. package/dist/credential-daemon.d.ts +0 -1
  24. package/dist/credential-daemon.d.ts.map +1 -1
  25. package/dist/credential-daemon.js +3 -123
  26. package/dist/credential-daemon.js.map +1 -1
  27. package/dist/dexbot.d.ts +0 -87
  28. package/dist/dexbot.d.ts.map +1 -1
  29. package/dist/dexbot.js +11 -14
  30. package/dist/dexbot.js.map +1 -1
  31. package/dist/market_adapter/ama_signal_runner.js +8 -9
  32. package/dist/market_adapter/ama_signal_runner.js.map +1 -1
  33. package/dist/market_adapter/candle_utils.js +1 -7
  34. package/dist/market_adapter/candle_utils.js.map +1 -1
  35. package/dist/market_adapter/core/asymmetric_bounds.js +1 -4
  36. package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
  37. package/dist/market_adapter/core/config_normalizers.js +5 -9
  38. package/dist/market_adapter/core/config_normalizers.js.map +1 -1
  39. package/dist/market_adapter/core/kibana_candles.js +8 -15
  40. package/dist/market_adapter/core/kibana_candles.js.map +1 -1
  41. package/dist/market_adapter/core/kibana_client.js +7 -13
  42. package/dist/market_adapter/core/kibana_client.js.map +1 -1
  43. package/dist/market_adapter/core/kibana_market_candles.js +6 -12
  44. package/dist/market_adapter/core/kibana_market_candles.js.map +1 -1
  45. package/dist/market_adapter/core/market_adapter_service.js +92 -102
  46. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  47. package/dist/market_adapter/core/strategies/ama.js +5 -10
  48. package/dist/market_adapter/core/strategies/ama.js.map +1 -1
  49. package/dist/market_adapter/core/strategies/ama_slope_model.js +21 -24
  50. package/dist/market_adapter/core/strategies/ama_slope_model.js.map +1 -1
  51. package/dist/market_adapter/core/strategies/atr/calculator.js +3 -5
  52. package/dist/market_adapter/core/strategies/atr/calculator.js.map +1 -1
  53. package/dist/market_adapter/core/strategies/collateral_manager.js +4 -6
  54. package/dist/market_adapter/core/strategies/collateral_manager.js.map +1 -1
  55. package/dist/market_adapter/core/strategies/regime_gate.js +15 -22
  56. package/dist/market_adapter/core/strategies/regime_gate.js.map +1 -1
  57. package/dist/market_adapter/index.d.ts +23 -23
  58. package/dist/market_adapter/index.d.ts.map +1 -1
  59. package/dist/market_adapter/index.js +24 -82
  60. package/dist/market_adapter/index.js.map +1 -1
  61. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +2 -1
  62. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -1
  63. package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
  64. package/dist/market_adapter/inputs/fetch_lp_data.js +59 -98
  65. package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
  66. package/dist/market_adapter/inputs/kibana_source.js +11 -17
  67. package/dist/market_adapter/inputs/kibana_source.js.map +1 -1
  68. package/dist/market_adapter/interval_utils.js +1 -2
  69. package/dist/market_adapter/interval_utils.js.map +1 -1
  70. package/dist/market_adapter/log_format.js +1 -7
  71. package/dist/market_adapter/log_format.js.map +1 -1
  72. package/dist/market_adapter/lp_chart_core.js +20 -22
  73. package/dist/market_adapter/lp_chart_core.js.map +1 -1
  74. package/dist/market_adapter/lp_chart_runner.d.ts +1 -1
  75. package/dist/market_adapter/lp_chart_runner.d.ts.map +1 -1
  76. package/dist/market_adapter/lp_chart_runner.js +41 -57
  77. package/dist/market_adapter/lp_chart_runner.js.map +1 -1
  78. package/dist/market_adapter/lp_chart_strategy_loader.js +30 -34
  79. package/dist/market_adapter/lp_chart_strategy_loader.js.map +1 -1
  80. package/dist/market_adapter/market_adapter.d.ts +2 -2
  81. package/dist/market_adapter/market_adapter.d.ts.map +1 -1
  82. package/dist/market_adapter/market_adapter.js +157 -221
  83. package/dist/market_adapter/market_adapter.js.map +1 -1
  84. package/dist/market_adapter/merge_lp_data.js +17 -18
  85. package/dist/market_adapter/merge_lp_data.js.map +1 -1
  86. package/dist/market_adapter/test_helpers.js +3 -14
  87. package/dist/market_adapter/test_helpers.js.map +1 -1
  88. package/dist/market_adapter/utils/adapter_client.js +7 -16
  89. package/dist/market_adapter/utils/adapter_client.js.map +1 -1
  90. package/dist/market_adapter/utils/atomic_write.js +3 -5
  91. package/dist/market_adapter/utils/atomic_write.js.map +1 -1
  92. package/dist/market_adapter/utils/chain.d.ts.map +1 -1
  93. package/dist/market_adapter/utils/chain.js +9 -17
  94. package/dist/market_adapter/utils/chain.js.map +1 -1
  95. package/dist/market_adapter/utils/data_discovery.js +8 -10
  96. package/dist/market_adapter/utils/data_discovery.js.map +1 -1
  97. package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts.map +1 -1
  98. package/dist/market_adapter/utils/dynamic_grid_snapshot.js +11 -14
  99. package/dist/market_adapter/utils/dynamic_grid_snapshot.js.map +1 -1
  100. package/dist/market_adapter/utils/file_lock.js +14 -19
  101. package/dist/market_adapter/utils/file_lock.js.map +1 -1
  102. package/dist/market_adapter/utils/native_history.js +8 -14
  103. package/dist/market_adapter/utils/native_history.js.map +1 -1
  104. package/dist/market_adapter/utils/paths.js +3 -6
  105. package/dist/market_adapter/utils/paths.js.map +1 -1
  106. package/dist/modules/account_bots.d.ts +1 -1
  107. package/dist/modules/account_bots.d.ts.map +1 -1
  108. package/dist/modules/account_bots.js +90 -97
  109. package/dist/modules/account_bots.js.map +1 -1
  110. package/dist/modules/account_orders.d.ts +0 -9
  111. package/dist/modules/account_orders.d.ts.map +1 -1
  112. package/dist/modules/account_orders.js +26 -121
  113. package/dist/modules/account_orders.js.map +1 -1
  114. package/dist/modules/authority_resolver.js +12 -18
  115. package/dist/modules/authority_resolver.js.map +1 -1
  116. package/dist/modules/bitshares-native/chain_client.js +16 -21
  117. package/dist/modules/bitshares-native/chain_client.js.map +1 -1
  118. package/dist/modules/bitshares-native/crypto/ecc.browser.js +12 -72
  119. package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -1
  120. package/dist/modules/bitshares-native/crypto/ecc.js +13 -40
  121. package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -1
  122. package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts.map +1 -1
  123. package/dist/modules/bitshares-native/crypto/ecc_selector.js +5 -6
  124. package/dist/modules/bitshares-native/crypto/ecc_selector.js.map +1 -1
  125. package/dist/modules/bitshares-native/index.d.ts +8 -8
  126. package/dist/modules/bitshares-native/index.d.ts.map +1 -1
  127. package/dist/modules/bitshares-native/index.js +11 -68
  128. package/dist/modules/bitshares-native/index.js.map +1 -1
  129. package/dist/modules/bitshares-native/lru_cache.js +3 -6
  130. package/dist/modules/bitshares-native/lru_cache.js.map +1 -1
  131. package/dist/modules/bitshares-native/resolvers.js +9 -11
  132. package/dist/modules/bitshares-native/resolvers.js.map +1 -1
  133. package/dist/modules/bitshares-native/serial/chain_constants.js +3 -28
  134. package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -1
  135. package/dist/modules/bitshares-native/serial/index.d.ts +4 -4
  136. package/dist/modules/bitshares-native/serial/index.d.ts.map +1 -1
  137. package/dist/modules/bitshares-native/serial/index.js +5 -46
  138. package/dist/modules/bitshares-native/serial/index.js.map +1 -1
  139. package/dist/modules/bitshares-native/serial/operations.d.ts +98 -98
  140. package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -1
  141. package/dist/modules/bitshares-native/serial/operations.js +372 -473
  142. package/dist/modules/bitshares-native/serial/operations.js.map +1 -1
  143. package/dist/modules/bitshares-native/serial/serializer.js +3 -8
  144. package/dist/modules/bitshares-native/serial/serializer.js.map +1 -1
  145. package/dist/modules/bitshares-native/serial/types.js +9 -74
  146. package/dist/modules/bitshares-native/serial/types.js.map +1 -1
  147. package/dist/modules/bitshares-native/signing_client.d.ts.map +1 -1
  148. package/dist/modules/bitshares-native/signing_client.js +11 -48
  149. package/dist/modules/bitshares-native/signing_client.js.map +1 -1
  150. package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
  151. package/dist/modules/bitshares-native/subscriptions.js +24 -27
  152. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  153. package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
  154. package/dist/modules/bitshares-native/transport.js +14 -26
  155. package/dist/modules/bitshares-native/transport.js.map +1 -1
  156. package/dist/modules/bitshares-native/tx/builder.js +29 -72
  157. package/dist/modules/bitshares-native/tx/builder.js.map +1 -1
  158. package/dist/modules/bitshares-native/tx/tx_cache.js +12 -21
  159. package/dist/modules/bitshares-native/tx/tx_cache.js.map +1 -1
  160. package/dist/modules/bitshares_client.d.ts +21 -0
  161. package/dist/modules/bitshares_client.d.ts.map +1 -1
  162. package/dist/modules/bitshares_client.js +32 -86
  163. package/dist/modules/bitshares_client.js.map +1 -1
  164. package/dist/modules/bot_settings.d.ts.map +1 -1
  165. package/dist/modules/bot_settings.js +30 -49
  166. package/dist/modules/bot_settings.js.map +1 -1
  167. package/dist/modules/bots_file_lock.d.ts.map +1 -1
  168. package/dist/modules/bots_file_lock.js +5 -13
  169. package/dist/modules/bots_file_lock.js.map +1 -1
  170. package/dist/modules/broadcast_failure.js +1 -3
  171. package/dist/modules/broadcast_failure.js.map +1 -1
  172. package/dist/modules/chain_keys.d.ts +4 -9
  173. package/dist/modules/chain_keys.d.ts.map +1 -1
  174. package/dist/modules/chain_keys.js +77 -182
  175. package/dist/modules/chain_keys.js.map +1 -1
  176. package/dist/modules/chain_orders.d.ts +2 -2
  177. package/dist/modules/chain_orders.d.ts.map +1 -1
  178. package/dist/modules/chain_orders.js +81 -144
  179. package/dist/modules/chain_orders.js.map +1 -1
  180. package/dist/modules/config.d.ts.map +1 -1
  181. package/dist/modules/config.js +23 -28
  182. package/dist/modules/config.js.map +1 -1
  183. package/dist/modules/constants.d.ts +2 -9
  184. package/dist/modules/constants.d.ts.map +1 -1
  185. package/dist/modules/constants.js +38 -73
  186. package/dist/modules/constants.js.map +1 -1
  187. package/dist/modules/cr_planner.js +15 -26
  188. package/dist/modules/cr_planner.js.map +1 -1
  189. package/dist/modules/credential_policy.d.ts +3 -6
  190. package/dist/modules/credential_policy.d.ts.map +1 -1
  191. package/dist/modules/credential_policy.js +62 -153
  192. package/dist/modules/credential_policy.js.map +1 -1
  193. package/dist/modules/credential_runtime.d.ts +1 -1
  194. package/dist/modules/credential_runtime.d.ts.map +1 -1
  195. package/dist/modules/credential_runtime.js +34 -41
  196. package/dist/modules/credential_runtime.js.map +1 -1
  197. package/dist/modules/credential_session_cache.d.ts +1 -1
  198. package/dist/modules/credential_session_cache.d.ts.map +1 -1
  199. package/dist/modules/credential_session_cache.js +5 -42
  200. package/dist/modules/credential_session_cache.js.map +1 -1
  201. package/dist/modules/credit_runtime.d.ts.map +1 -1
  202. package/dist/modules/credit_runtime.js +126 -162
  203. package/dist/modules/credit_runtime.js.map +1 -1
  204. package/dist/modules/crypto/browser_provider.d.ts +1 -1
  205. package/dist/modules/crypto/browser_provider.d.ts.map +1 -1
  206. package/dist/modules/crypto/browser_provider.js +7 -11
  207. package/dist/modules/crypto/browser_provider.js.map +1 -1
  208. package/dist/modules/crypto/index.d.ts +6 -6
  209. package/dist/modules/crypto/index.d.ts.map +1 -1
  210. package/dist/modules/crypto/index.js +12 -30
  211. package/dist/modules/crypto/index.js.map +1 -1
  212. package/dist/modules/crypto/node_provider.d.ts +1 -1
  213. package/dist/modules/crypto/node_provider.d.ts.map +1 -1
  214. package/dist/modules/crypto/node_provider.js +3 -5
  215. package/dist/modules/crypto/node_provider.js.map +1 -1
  216. package/dist/modules/crypto/provider.js +1 -2
  217. package/dist/modules/crypto/pure_ripemd160.js +1 -3
  218. package/dist/modules/crypto/pure_ripemd160.js.map +1 -1
  219. package/dist/modules/crypto/pure_scrypt.js +1 -4
  220. package/dist/modules/crypto/pure_scrypt.js.map +1 -1
  221. package/dist/modules/crypto/pure_secp256k1.d.ts +1 -1
  222. package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -1
  223. package/dist/modules/crypto/pure_secp256k1.js +1 -16
  224. package/dist/modules/crypto/pure_secp256k1.js.map +1 -1
  225. package/dist/modules/crypto/sync.d.ts.map +1 -1
  226. package/dist/modules/crypto/sync.js +16 -17
  227. package/dist/modules/crypto/sync.js.map +1 -1
  228. package/dist/modules/daemon_node_health.js +14 -16
  229. package/dist/modules/daemon_node_health.js.map +1 -1
  230. package/dist/modules/dexbot_class.d.ts +19 -14
  231. package/dist/modules/dexbot_class.d.ts.map +1 -1
  232. package/dist/modules/dexbot_class.js +127 -164
  233. package/dist/modules/dexbot_class.js.map +1 -1
  234. package/dist/modules/dexbot_cow_runtime.d.ts +28 -27
  235. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  236. package/dist/modules/dexbot_cow_runtime.js +55 -45
  237. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  238. package/dist/modules/dexbot_credential_client.d.ts +6 -2
  239. package/dist/modules/dexbot_credential_client.d.ts.map +1 -1
  240. package/dist/modules/dexbot_credential_client.js +21 -31
  241. package/dist/modules/dexbot_credential_client.js.map +1 -1
  242. package/dist/modules/dexbot_fill_runtime.d.ts +23 -23
  243. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
  244. package/dist/modules/dexbot_fill_runtime.js +119 -77
  245. package/dist/modules/dexbot_fill_runtime.js.map +1 -1
  246. package/dist/modules/dexbot_maintenance_runtime.d.ts +46 -38
  247. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  248. package/dist/modules/dexbot_maintenance_runtime.js +81 -81
  249. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  250. package/dist/modules/dexbot_startup_runtime.d.ts +3 -3
  251. package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
  252. package/dist/modules/dexbot_startup_runtime.js +43 -81
  253. package/dist/modules/dexbot_startup_runtime.js.map +1 -1
  254. package/dist/modules/dexbot_state_recovery.d.ts +11 -11
  255. package/dist/modules/dexbot_state_recovery.js +32 -78
  256. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  257. package/dist/modules/env.js +3 -7
  258. package/dist/modules/env.js.map +1 -1
  259. package/dist/modules/fund_registry.d.ts.map +1 -1
  260. package/dist/modules/fund_registry.js +12 -24
  261. package/dist/modules/fund_registry.js.map +1 -1
  262. package/dist/modules/general_settings.js +10 -16
  263. package/dist/modules/general_settings.js.map +1 -1
  264. package/dist/modules/graceful_shutdown.d.ts.map +1 -1
  265. package/dist/modules/graceful_shutdown.js +12 -19
  266. package/dist/modules/graceful_shutdown.js.map +1 -1
  267. package/dist/modules/key_store.d.ts.map +1 -1
  268. package/dist/modules/key_store.js +27 -65
  269. package/dist/modules/key_store.js.map +1 -1
  270. package/dist/modules/launcher/bot_supervisor.d.ts +1 -1
  271. package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
  272. package/dist/modules/launcher/bot_supervisor.js +89 -118
  273. package/dist/modules/launcher/bot_supervisor.js.map +1 -1
  274. package/dist/modules/launcher/child_env.js +1 -5
  275. package/dist/modules/launcher/child_env.js.map +1 -1
  276. package/dist/modules/launcher/credential_bootstrap.js +22 -31
  277. package/dist/modules/launcher/credential_bootstrap.js.map +1 -1
  278. package/dist/modules/launcher/credential_daemon.js +37 -75
  279. package/dist/modules/launcher/credential_daemon.js.map +1 -1
  280. package/dist/modules/launcher/credential_secret.js +2 -37
  281. package/dist/modules/launcher/credential_secret.js.map +1 -1
  282. package/dist/modules/launcher/foreign_cred_daemon.js +25 -31
  283. package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -1
  284. package/dist/modules/launcher/headless_password.js +10 -12
  285. package/dist/modules/launcher/headless_password.js.map +1 -1
  286. package/dist/modules/launcher/launch_modes.js +3 -9
  287. package/dist/modules/launcher/launch_modes.js.map +1 -1
  288. package/dist/modules/launcher/market_adapter_runtime.d.ts +1 -1
  289. package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
  290. package/dist/modules/launcher/market_adapter_runtime.js +25 -35
  291. package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
  292. package/dist/modules/launcher/market_adapter_watchdog.d.ts.map +1 -1
  293. package/dist/modules/launcher/market_adapter_watchdog.js +42 -45
  294. package/dist/modules/launcher/market_adapter_watchdog.js.map +1 -1
  295. package/dist/modules/launcher/monolithic_runtime.d.ts +1 -1
  296. package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
  297. package/dist/modules/launcher/monolithic_runtime.js +67 -138
  298. package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
  299. package/dist/modules/launcher/runtime_entry.d.ts +1 -11
  300. package/dist/modules/launcher/runtime_entry.d.ts.map +1 -1
  301. package/dist/modules/launcher/runtime_entry.js +12 -15
  302. package/dist/modules/launcher/runtime_entry.js.map +1 -1
  303. package/dist/modules/launcher/status_reporting.d.ts +1 -1
  304. package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
  305. package/dist/modules/launcher/status_reporting.js +15 -36
  306. package/dist/modules/launcher/status_reporting.js.map +1 -1
  307. package/dist/modules/launcher/supervisor_control.js +4 -9
  308. package/dist/modules/launcher/supervisor_control.js.map +1 -1
  309. package/dist/modules/logger.d.ts +1 -1
  310. package/dist/modules/logger.d.ts.map +1 -1
  311. package/dist/modules/logger.js +3 -38
  312. package/dist/modules/logger.js.map +1 -1
  313. package/dist/modules/market_adapter_whitelist.js +9 -18
  314. package/dist/modules/market_adapter_whitelist.js.map +1 -1
  315. package/dist/modules/node_failure_ledger.js +1 -3
  316. package/dist/modules/node_failure_ledger.js.map +1 -1
  317. package/dist/modules/node_health_cache.d.ts.map +1 -1
  318. package/dist/modules/node_health_cache.js +15 -25
  319. package/dist/modules/node_health_cache.js.map +1 -1
  320. package/dist/modules/node_manager.d.ts +1 -1
  321. package/dist/modules/node_manager.d.ts.map +1 -1
  322. package/dist/modules/node_manager.js +44 -43
  323. package/dist/modules/node_manager.js.map +1 -1
  324. package/dist/modules/order/accounting.d.ts.map +1 -1
  325. package/dist/modules/order/accounting.js +102 -118
  326. package/dist/modules/order/accounting.js.map +1 -1
  327. package/dist/modules/order/async_lock.d.ts +3 -15
  328. package/dist/modules/order/async_lock.d.ts.map +1 -1
  329. package/dist/modules/order/async_lock.js +6 -26
  330. package/dist/modules/order/async_lock.js.map +1 -1
  331. package/dist/modules/order/export.js +34 -75
  332. package/dist/modules/order/export.js.map +1 -1
  333. package/dist/modules/order/format.d.ts +1 -3
  334. package/dist/modules/order/format.d.ts.map +1 -1
  335. package/dist/modules/order/format.js +4 -24
  336. package/dist/modules/order/format.js.map +1 -1
  337. package/dist/modules/order/grid.d.ts +3 -3
  338. package/dist/modules/order/grid.d.ts.map +1 -1
  339. package/dist/modules/order/grid.js +206 -262
  340. package/dist/modules/order/grid.js.map +1 -1
  341. package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
  342. package/dist/modules/order/grid_reconcile.js +77 -94
  343. package/dist/modules/order/grid_reconcile.js.map +1 -1
  344. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  345. package/dist/modules/order/grid_reconcile_internal.js +117 -149
  346. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  347. package/dist/modules/order/index.d.ts.map +1 -1
  348. package/dist/modules/order/index.js +11 -45
  349. package/dist/modules/order/index.js.map +1 -1
  350. package/dist/modules/order/logger.js +28 -69
  351. package/dist/modules/order/logger.js.map +1 -1
  352. package/dist/modules/order/logger_state.d.ts.map +1 -1
  353. package/dist/modules/order/logger_state.js +3 -4
  354. package/dist/modules/order/logger_state.js.map +1 -1
  355. package/dist/modules/order/manager.d.ts +10 -0
  356. package/dist/modules/order/manager.d.ts.map +1 -1
  357. package/dist/modules/order/manager.js +131 -151
  358. package/dist/modules/order/manager.js.map +1 -1
  359. package/dist/modules/order/processed_fill_store.js +2 -7
  360. package/dist/modules/order/processed_fill_store.js.map +1 -1
  361. package/dist/modules/order/strategy.js +23 -25
  362. package/dist/modules/order/strategy.js.map +1 -1
  363. package/dist/modules/order/sync_engine.d.ts +27 -0
  364. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  365. package/dist/modules/order/sync_engine.js +232 -181
  366. package/dist/modules/order/sync_engine.js.map +1 -1
  367. package/dist/modules/order/utils/math.d.ts +1 -25
  368. package/dist/modules/order/utils/math.d.ts.map +1 -1
  369. package/dist/modules/order/utils/math.js +49 -172
  370. package/dist/modules/order/utils/math.js.map +1 -1
  371. package/dist/modules/order/utils/order.d.ts +46 -2
  372. package/dist/modules/order/utils/order.d.ts.map +1 -1
  373. package/dist/modules/order/utils/order.js +165 -143
  374. package/dist/modules/order/utils/order.js.map +1 -1
  375. package/dist/modules/order/utils/system.d.ts +3 -1
  376. package/dist/modules/order/utils/system.d.ts.map +1 -1
  377. package/dist/modules/order/utils/system.js +152 -211
  378. package/dist/modules/order/utils/system.js.map +1 -1
  379. package/dist/modules/order/utils/timeout.js +1 -4
  380. package/dist/modules/order/utils/timeout.js.map +1 -1
  381. package/dist/modules/order/utils/validate.js +91 -142
  382. package/dist/modules/order/utils/validate.js.map +1 -1
  383. package/dist/modules/order/utils/withPoolRef.js +21 -61
  384. package/dist/modules/order/utils/withPoolRef.js.map +1 -1
  385. package/dist/modules/order/working_grid.js +6 -9
  386. package/dist/modules/order/working_grid.js.map +1 -1
  387. package/dist/modules/path_api.d.ts.map +1 -1
  388. package/dist/modules/path_api.js +8 -11
  389. package/dist/modules/path_api.js.map +1 -1
  390. package/dist/modules/paths.d.ts.map +1 -1
  391. package/dist/modules/paths.js +61 -67
  392. package/dist/modules/paths.js.map +1 -1
  393. package/dist/modules/process_discovery.js +13 -21
  394. package/dist/modules/process_discovery.js.map +1 -1
  395. package/dist/modules/runtime.js +7 -11
  396. package/dist/modules/runtime.js.map +1 -1
  397. package/dist/modules/runtime_settings.d.ts.map +1 -1
  398. package/dist/modules/runtime_settings.js +14 -16
  399. package/dist/modules/runtime_settings.js.map +1 -1
  400. package/dist/modules/settings_merge.js +1 -3
  401. package/dist/modules/settings_merge.js.map +1 -1
  402. package/dist/modules/socket_json_client.js +3 -5
  403. package/dist/modules/socket_json_client.js.map +1 -1
  404. package/dist/modules/storage/browser_adapter.js +1 -4
  405. package/dist/modules/storage/browser_adapter.js.map +1 -1
  406. package/dist/modules/storage/index.d.ts +3 -2
  407. package/dist/modules/storage/index.d.ts.map +1 -1
  408. package/dist/modules/storage/index.js +5 -8
  409. package/dist/modules/storage/index.js.map +1 -1
  410. package/dist/modules/storage/node_adapter.d.ts +3 -4
  411. package/dist/modules/storage/node_adapter.d.ts.map +1 -1
  412. package/dist/modules/storage/node_adapter.js +12 -16
  413. package/dist/modules/storage/node_adapter.js.map +1 -1
  414. package/dist/modules/storage/types.js +1 -2
  415. package/dist/modules/types.d.ts +0 -6
  416. package/dist/modules/types.d.ts.map +1 -1
  417. package/dist/modules/types.js +1 -2
  418. package/dist/modules/types.js.map +1 -1
  419. package/dist/modules/utils/base58check.js +8 -15
  420. package/dist/modules/utils/base58check.js.map +1 -1
  421. package/dist/modules/utils/build_dir.js +3 -7
  422. package/dist/modules/utils/build_dir.js.map +1 -1
  423. package/dist/modules/utils/errors.js +1 -5
  424. package/dist/modules/utils/errors.js.map +1 -1
  425. package/dist/modules/utils/math_utils.d.ts +1 -1
  426. package/dist/modules/utils/math_utils.d.ts.map +1 -1
  427. package/dist/modules/utils/math_utils.js +2 -7
  428. package/dist/modules/utils/math_utils.js.map +1 -1
  429. package/dist/modules/validate_profiles.d.ts.map +1 -1
  430. package/dist/modules/validate_profiles.js +18 -25
  431. package/dist/modules/validate_profiles.js.map +1 -1
  432. package/dist/pm2.d.ts +4 -70
  433. package/dist/pm2.d.ts.map +1 -1
  434. package/dist/pm2.js +106 -132
  435. package/dist/pm2.js.map +1 -1
  436. package/dist/scripts/analyze-git.js +13 -17
  437. package/dist/scripts/analyze-git.js.map +1 -1
  438. package/dist/scripts/analyze-orders.d.ts.map +1 -1
  439. package/dist/scripts/analyze-orders.js +48 -63
  440. package/dist/scripts/analyze-orders.js.map +1 -1
  441. package/dist/scripts/diagnose-kibana-candles.d.ts.map +1 -1
  442. package/dist/scripts/diagnose-kibana-candles.js +2 -1
  443. package/dist/scripts/diagnose-kibana-candles.js.map +1 -1
  444. package/dist/scripts/diagnose-pool-history.d.ts.map +1 -1
  445. package/dist/scripts/diagnose-pool-history.js +2 -1
  446. package/dist/scripts/diagnose-pool-history.js.map +1 -1
  447. package/dist/scripts/divergence-calc.d.ts.map +1 -1
  448. package/dist/scripts/divergence-calc.js +2 -2
  449. package/dist/scripts/divergence-calc.js.map +1 -1
  450. package/dist/scripts/fix-err-message.js +17 -22
  451. package/dist/scripts/fix-err-message.js.map +1 -1
  452. package/dist/scripts/generate_lp_chart.d.ts.map +1 -1
  453. package/dist/scripts/generate_lp_chart.js +7 -15
  454. package/dist/scripts/generate_lp_chart.js.map +1 -1
  455. package/dist/scripts/generate_mainnet_corpus_report.d.ts.map +1 -1
  456. package/dist/scripts/generate_mainnet_corpus_report.js +3 -2
  457. package/dist/scripts/generate_mainnet_corpus_report.js.map +1 -1
  458. package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -1
  459. package/dist/scripts/generate_market_adapter_whitelist.js +18 -24
  460. package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -1
  461. package/dist/scripts/native_release_gates.js +15 -19
  462. package/dist/scripts/native_release_gates.js.map +1 -1
  463. package/dist/scripts/print_grid.d.ts.map +1 -1
  464. package/dist/scripts/print_grid.js +2 -2
  465. package/dist/scripts/print_grid.js.map +1 -1
  466. package/dist/scripts/run-tests.js +12 -17
  467. package/dist/scripts/run-tests.js.map +1 -1
  468. package/dist/scripts/runner.d.ts.map +1 -1
  469. package/dist/scripts/runner.js +18 -20
  470. package/dist/scripts/runner.js.map +1 -1
  471. package/dist/scripts/sync-version.js +2 -2
  472. package/dist/scripts/sync-version.js.map +1 -1
  473. package/dist/scripts/test-credit-renewal.d.ts.map +1 -1
  474. package/dist/scripts/test-credit-renewal.js +4 -3
  475. package/dist/scripts/test-credit-renewal.js.map +1 -1
  476. package/dist/scripts/update.js +77 -89
  477. package/dist/scripts/update.js.map +1 -1
  478. package/dist/scripts/validate_bots.d.ts.map +1 -1
  479. package/dist/scripts/validate_bots.js +2 -2
  480. package/dist/scripts/validate_bots.js.map +1 -1
  481. package/dist/scripts/verify-browser-bundle.js +12 -17
  482. package/dist/scripts/verify-browser-bundle.js.map +1 -1
  483. package/dist/unlock.d.ts +0 -30
  484. package/dist/unlock.d.ts.map +1 -1
  485. package/dist/unlock.js +95 -143
  486. package/dist/unlock.js.map +1 -1
  487. package/package.json +5 -8
  488. package/scripts/README.md +1 -1
  489. package/scripts/create-bot-symlinks.sh +2 -2
  490. package/dist/modules/utils/fs_utils.d.ts +0 -18
  491. package/dist/modules/utils/fs_utils.d.ts.map +0 -1
  492. package/dist/modules/utils/fs_utils.js +0 -32
  493. package/dist/modules/utils/fs_utils.js.map +0 -1
  494. package/dist/scripts/migrate_bot_keys.d.ts +0 -3
  495. package/dist/scripts/migrate_bot_keys.d.ts.map +0 -1
  496. package/dist/scripts/migrate_bot_keys.js +0 -225
  497. package/dist/scripts/migrate_bot_keys.js.map +0 -1
@@ -1,94 +1,30 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports._setBitsharesClientForTests = exports.normalizeNativeMarketHistoryCandles = exports.isBotGridRangeScalingWhitelisted = exports.isBotAsymmetricBoundsWhitelisted = exports.isBotDynamicWeightWhitelisted = exports.isBotWhitelisted = exports.normalizeMarketSource = exports.DEFAULTS = exports.DEFAULT_AMA = void 0;
41
- exports.main = main;
42
- exports.runOnceForAma = runOnceForAma;
43
- exports.calculateBotThreshold = calculateBotThreshold;
44
- exports.calcAmaComparison = calcAmaComparison;
45
- exports.computeCandleStaleness = computeCandleStaleness;
46
- exports.sleepUntilAlignedBoundary = sleepUntilAlignedBoundary;
47
- exports.resolveAmaForBot = resolveAmaForBot;
48
- exports.resolveDeltaThresholdPercentFromGeneralSettings = resolveDeltaThresholdPercentFromGeneralSettings;
49
- exports.applyRuntimeDefaultsFromGeneralSettings = applyRuntimeDefaultsFromGeneralSettings;
50
- exports.resolveBotCfg = resolveBotCfg;
51
- exports.usesAmaGridPrice = usesAmaGridPrice;
52
- exports.usesOrderbookMarketSource = usesOrderbookMarketSource;
53
- exports._resetCycleCache = _resetCycleCache;
54
- exports.writeCenterSnapshot = writeCenterSnapshot;
55
- exports.writeBotDynamicGrid = writeBotDynamicGrid;
56
- exports.writeGridResetTrigger = writeGridResetTrigger;
57
- exports.mergeGridResetMetadataFromDynamicGrid = mergeGridResetMetadataFromDynamicGrid;
58
- exports.fetchNativeMarketHistorySince = fetchNativeMarketHistorySince;
59
- exports.loadMarketAdapterSettings = loadMarketAdapterSettings;
60
- exports.findPairForBot = findPairForBot;
61
- const path_api_1 = require("../modules/path_api");
62
- const storage_1 = require("../modules/storage");
63
- const system_1 = require("../modules/order/utils/system");
64
- const general_settings_1 = require("../modules/general_settings");
65
- const constants_1 = require("../modules/constants");
66
- const bot_settings_1 = require("../modules/bot_settings");
67
- const ama_1 = require("./core/strategies/ama");
68
- const kibanaSource = __importStar(require("./inputs/kibana_source"));
69
- const kibanaMarketSource = __importStar(require("./core/kibana_market_candles"));
70
- const candle_utils_1 = require("./candle_utils");
71
- const interval_utils_1 = require("./interval_utils");
72
- const tradingview_uplot_chart_generator_1 = require("../analysis/tradingview/tradingview_uplot_chart_generator");
73
- const atomic_write_1 = require("./utils/atomic_write");
74
- const file_lock_1 = require("./utils/file_lock");
75
- const dynamic_grid_snapshot_1 = require("./utils/dynamic_grid_snapshot");
76
- const paths_1 = require("../modules/paths");
77
- const logger_1 = __importDefault(require("../modules/logger"));
78
- const fs_utils_1 = require("../modules/utils/fs_utils");
79
- const math_utils_1 = require("../modules/utils/math_utils");
80
- const config_normalizers_js_1 = require("./core/config_normalizers.js");
81
- const market_adapter_whitelist_js_1 = require("../modules/market_adapter_whitelist.js");
82
- Object.defineProperty(exports, "isBotWhitelisted", { enumerable: true, get: function () { return market_adapter_whitelist_js_1.isBotWhitelisted; } });
83
- Object.defineProperty(exports, "isBotDynamicWeightWhitelisted", { enumerable: true, get: function () { return market_adapter_whitelist_js_1.isBotDynamicWeightWhitelisted; } });
84
- Object.defineProperty(exports, "isBotAsymmetricBoundsWhitelisted", { enumerable: true, get: function () { return market_adapter_whitelist_js_1.isBotAsymmetricBoundsWhitelisted; } });
85
- Object.defineProperty(exports, "isBotGridRangeScalingWhitelisted", { enumerable: true, get: function () { return market_adapter_whitelist_js_1.isBotGridRangeScalingWhitelisted; } });
86
- const chain_js_1 = require("./utils/chain.js");
87
- Object.defineProperty(exports, "normalizeMarketSource", { enumerable: true, get: function () { return chain_js_1.normalizeMarketSource; } });
88
- Object.defineProperty(exports, "_setBitsharesClientForTests", { enumerable: true, get: function () { return chain_js_1.setBitsharesClientForTests; } });
89
- const native_history_js_1 = require("./utils/native_history.js");
90
- Object.defineProperty(exports, "normalizeNativeMarketHistoryCandles", { enumerable: true, get: function () { return native_history_js_1.normalizeNativeMarketHistoryCandles; } });
91
- const log_format_js_1 = require("./log_format.js");
2
+ import { fileURLToPath } from 'node:url';
3
+ import { pathToFileURL } from 'node:url';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ import { path } from '../modules/path_api.js';
6
+ import { getStorage } from '../modules/storage/index.js';
7
+ import { parseJsonWithComments, sleep, ensureDir } from '../modules/order/utils/system.js';
8
+ import { readGeneralSettings } from '../modules/general_settings.js';
9
+ import { DEFAULT_CONFIG, MARKET_ADAPTER, NATIVE_CLIENT, API_LIMITS, TIMING } from '../modules/constants.js';
10
+ import { normalizeBotEntry } from '../modules/bot_settings.js';
11
+ import { calculateAMA } from './core/strategies/ama.js';
12
+ import * as kibanaSource from './inputs/kibana_source.js';
13
+ import * as kibanaMarketSource from './core/kibana_market_candles.js';
14
+ import { tradesToCandles, detectMissingCandleTimestamps, fillCandleGaps, detectStaleTail, pruneStaleTail, mergeCandles } from './candle_utils.js';
15
+ import { toIntervalLabel } from './interval_utils.js';
16
+ import { loadMarketProfiles } from '../analysis/tradingview/tradingview_uplot_chart_generator.js';
17
+ import { writeJsonAtomic } from './utils/atomic_write.js';
18
+ import { acquireFileLockSync, releaseFileLockSync } from './utils/file_lock.js';
19
+ import { updateDynamicGridSnapshotSync } from './utils/dynamic_grid_snapshot.js';
20
+ import { PATHS, getRecalculateTriggerFile } from '../modules/paths.js';
21
+ import Logger from '../modules/logger.js';
22
+ import { fixedTo, roundTo } from '../modules/utils/math_utils.js';
23
+ import { normalizeAtrPeriod, normalizeMaxVolatilityOffset, normalizeVolatilityThreshold, } from './core/config_normalizers.js';
24
+ import { resetMarketAdapterWhitelistCache, isBotWhitelisted, isBotDynamicWeightWhitelisted, isBotAsymmetricBoundsWhitelisted, isBotGridRangeScalingWhitelisted, } from '../modules/market_adapter_whitelist.js';
25
+ import { normalizeAssetSymbol, normalizeMarketSource, resolveMarketSourceForBot, resolveBotContext, isExactPair, isSamePair, isExactPairIds, isSamePairIds, getBitsharesClient, setBitsharesClientForTests, } from './utils/chain.js';
26
+ import { normalizeNativeMarketHistoryCandles, } from './utils/native_history.js';
27
+ import { formatLogPercent, buildWeightSummary, buildDynamicWeightInputsLog, buildDynamicWeightTuningLog, buildAsymmetricBoundsLog, buildStartupDefaultsLog, } from './log_format.js';
92
28
  'use strict';
93
29
  /**
94
30
  * PRICE ADAPTER — standalone or auto-launched by dexbot runtime.
@@ -101,31 +37,32 @@ const log_format_js_1 = require("./log_format.js");
101
37
  *
102
38
  * No wallet keys/password/auth required (read-only chain + Kibana bootstrap).
103
39
  */
104
- const storage = (0, storage_1.getStorage)();
105
- const ROOT = paths_1.PATHS.PROJECT_ROOT;
106
- const BOTS_FILE = paths_1.PATHS.PROFILES.BOTS_JSON;
107
- const DATA_DIR = paths_1.PATHS.MARKET_ADAPTER.DATA_DIR;
108
- const STATE_DIR = paths_1.PATHS.MARKET_ADAPTER.STATE_DIR;
109
- const STATE_FILE = paths_1.PATHS.MARKET_ADAPTER.STATE_FILE;
110
- const CENTER_FILE = paths_1.PATHS.MARKET_ADAPTER.CENTERS_FILE;
111
- const LOCK_FILE = paths_1.PATHS.MARKET_ADAPTER.LOCK_FILE;
112
- const MARKET_ADAPTER_SOURCE = path_api_1.path.relative(paths_1.PATHS.PROJECT_ROOT, __filename).replace(/^dist[\\\/]/, '');
113
- const MARKET_ADAPTER_SETTINGS_FILE = paths_1.PATHS.PROFILES.MARKET_ADAPTER_SETTINGS_JSON;
114
- const LP_OP_TYPE = constants_1.NATIVE_CLIENT.OPERATIONS.LIQUIDITY_POOL_EXCHANGE;
115
- const API_MAX_PAGE = constants_1.API_LIMITS.LP_API_MAX_PAGE;
116
- const RUNTIME_DEFAULTS = constants_1.MARKET_ADAPTER.RUNTIME_DEFAULTS;
40
+ const storage = getStorage();
41
+ const { readJSON } = storage;
42
+ const ROOT = PATHS.PROJECT_ROOT;
43
+ const BOTS_FILE = PATHS.PROFILES.BOTS_JSON;
44
+ const DATA_DIR = PATHS.MARKET_ADAPTER.DATA_DIR;
45
+ const STATE_DIR = PATHS.MARKET_ADAPTER.STATE_DIR;
46
+ const STATE_FILE = PATHS.MARKET_ADAPTER.STATE_FILE;
47
+ const CENTER_FILE = PATHS.MARKET_ADAPTER.CENTERS_FILE;
48
+ const LOCK_FILE = PATHS.MARKET_ADAPTER.LOCK_FILE;
49
+ const MARKET_ADAPTER_SOURCE = path.relative(PATHS.PROJECT_ROOT, __filename).replace(/^dist[\\\/]/, '');
50
+ const MARKET_ADAPTER_SETTINGS_FILE = PATHS.PROFILES.MARKET_ADAPTER_SETTINGS_JSON;
51
+ const LP_OP_TYPE = NATIVE_CLIENT.OPERATIONS.LIQUIDITY_POOL_EXCHANGE;
52
+ const API_MAX_PAGE = API_LIMITS.LP_API_MAX_PAGE;
53
+ const RUNTIME_DEFAULTS = MARKET_ADAPTER.RUNTIME_DEFAULTS;
117
54
  const DEFAULTS = {
118
55
  pollSeconds: RUNTIME_DEFAULTS.pollSeconds,
119
- deltaThresholdPercent: constants_1.MARKET_ADAPTER.AMA_DELTA_THRESHOLD_PERCENT,
56
+ deltaThresholdPercent: MARKET_ADAPTER.AMA_DELTA_THRESHOLD_PERCENT,
120
57
  amaSlopeDeltaThresholdPercent: undefined,
121
- absoluteThreshold: constants_1.MARKET_ADAPTER.DYNAMIC_WEIGHT_ABSOLUTE_THRESHOLD_DEFAULT,
58
+ absoluteThreshold: MARKET_ADAPTER.DYNAMIC_WEIGHT_ABSOLUTE_THRESHOLD_DEFAULT,
122
59
  intervalSeconds: RUNTIME_DEFAULTS.intervalSeconds,
123
60
  bootstrapLookbackHours: RUNTIME_DEFAULTS.bootstrapLookbackHours,
124
61
  nativeBackfillHours: RUNTIME_DEFAULTS.nativeBackfillHours,
125
62
  maxStaleHours: RUNTIME_DEFAULTS.maxStaleHours,
126
63
  sourceRetries: RUNTIME_DEFAULTS.sourceRetries,
127
64
  retryDelayMs: RUNTIME_DEFAULTS.retryDelayMs,
128
- kibanaRequestTimeoutMs: constants_1.MARKET_ADAPTER.KIBANA_REQUEST_TIMEOUT_MS,
65
+ kibanaRequestTimeoutMs: MARKET_ADAPTER.KIBANA_REQUEST_TIMEOUT_MS,
129
66
  metricsJson: false,
130
67
  quiet: false,
131
68
  dryRun: false,
@@ -133,26 +70,25 @@ const DEFAULTS = {
133
70
  maxPages: RUNTIME_DEFAULTS.maxPages,
134
71
  pageLimit: RUNTIME_DEFAULTS.pageLimit,
135
72
  once: false,
136
- maxNativeGapFillCandles: constants_1.MARKET_ADAPTER.STALE_TAIL_THRESHOLD_CANDLES,
137
- staleTailThreshold: constants_1.MARKET_ADAPTER.STALE_TAIL_THRESHOLD_CANDLES,
73
+ maxNativeGapFillCandles: MARKET_ADAPTER.STALE_TAIL_THRESHOLD_CANDLES,
74
+ staleTailThreshold: MARKET_ADAPTER.STALE_TAIL_THRESHOLD_CANDLES,
138
75
  amaSlope: {
139
- lookbackBars: constants_1.MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_LOOKBACK_BARS,
140
- maxSlopePct: constants_1.MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_MAX_SLOPE_PCT,
141
- neutralZonePct: constants_1.MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_NEUTRAL_ZONE_PCT,
142
- deltaThresholdPct: constants_1.MARKET_ADAPTER.AMA_SLOPE_DELTA_THRESHOLD_PERCENT,
76
+ lookbackBars: MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_LOOKBACK_BARS,
77
+ maxSlopePct: MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_MAX_SLOPE_PCT,
78
+ neutralZonePct: MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_NEUTRAL_ZONE_PCT,
79
+ deltaThresholdPct: MARKET_ADAPTER.AMA_SLOPE_DELTA_THRESHOLD_PERCENT,
143
80
  },
144
81
  kalmanSlope: {
145
- maxSlopePct: constants_1.MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_MAX_SLOPE_PCT,
82
+ maxSlopePct: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_MAX_SLOPE_PCT,
146
83
  },
147
- atrPeriod: constants_1.MARKET_ADAPTER.DYNAMIC_WEIGHT_ATR_PERIOD_DEFAULT,
84
+ atrPeriod: MARKET_ADAPTER.DYNAMIC_WEIGHT_ATR_PERIOD_DEFAULT,
148
85
  };
149
- exports.DEFAULTS = DEFAULTS;
150
86
  // Cycle-scoped caches — reset once per runOnce() so each cycle reads files fresh
151
87
  // but all bots within that cycle share the same loaded data (N bots → 1 file read).
152
88
  let _marketAdapterSettingsCache = null;
153
89
  function _resetCycleCache() {
154
90
  _marketAdapterSettingsCache = null;
155
- (0, market_adapter_whitelist_js_1.resetMarketAdapterWhitelistCache)();
91
+ resetMarketAdapterWhitelistCache();
156
92
  }
157
93
  function loadMarketAdapterSettings() {
158
94
  if (_marketAdapterSettingsCache !== null)
@@ -160,11 +96,11 @@ function loadMarketAdapterSettings() {
160
96
  if (!storage.exists(MARKET_ADAPTER_SETTINGS_FILE))
161
97
  return null;
162
98
  try {
163
- _marketAdapterSettingsCache = (0, fs_utils_1.readJSON)(MARKET_ADAPTER_SETTINGS_FILE);
99
+ _marketAdapterSettingsCache = readJSON(MARKET_ADAPTER_SETTINGS_FILE);
164
100
  return _marketAdapterSettingsCache;
165
101
  }
166
102
  catch (_) {
167
- console.warn(`[WARN] Failed to parse ${MARKET_ADAPTER_SETTINGS_FILE}: ${(0, errors_1.getErrorMessage)(_)}. Using defaults.`);
103
+ console.warn(`[WARN] Failed to parse ${MARKET_ADAPTER_SETTINGS_FILE}: ${getErrorMessage(_)}. Using defaults.`);
168
104
  _marketAdapterSettingsCache = false;
169
105
  return null;
170
106
  }
@@ -174,27 +110,27 @@ function findPairForBot(bot, pairs) {
174
110
  return null;
175
111
  const botAId = String(bot.assetAId || '');
176
112
  const botBId = String(bot.assetBId || '');
177
- const botA = (0, chain_js_1.normalizeAssetSymbol)(bot.assetA);
178
- const botB = (0, chain_js_1.normalizeAssetSymbol)(bot.assetB);
113
+ const botA = normalizeAssetSymbol(bot.assetA);
114
+ const botB = normalizeAssetSymbol(bot.assetB);
179
115
  let fallbackMatch = null;
180
116
  for (const p of pairs) {
181
117
  const parts = String(p.key || '').split('|');
182
118
  const pAId = parts[0];
183
119
  const pBId = parts[1];
184
- const pA = (0, chain_js_1.normalizeAssetSymbol)(p.assetASymbol);
185
- const pB = (0, chain_js_1.normalizeAssetSymbol)(p.assetBSymbol);
120
+ const pA = normalizeAssetSymbol(p.assetASymbol);
121
+ const pB = normalizeAssetSymbol(p.assetBSymbol);
186
122
  if (botAId && botBId && pAId && pBId) {
187
- if ((0, chain_js_1.isExactPairIds)(botAId, botBId, pAId, pBId))
123
+ if (isExactPairIds(botAId, botBId, pAId, pBId))
188
124
  return p;
189
- if (!fallbackMatch && (0, chain_js_1.isSamePairIds)(botAId, botBId, pAId, pBId)) {
125
+ if (!fallbackMatch && isSamePairIds(botAId, botBId, pAId, pBId)) {
190
126
  fallbackMatch = p;
191
127
  continue;
192
128
  }
193
129
  }
194
130
  if (botA && botB && pA && pB) {
195
- if ((0, chain_js_1.isExactPair)(botA, botB, pA, pB))
131
+ if (isExactPair(botA, botB, pA, pB))
196
132
  return p;
197
- if (!fallbackMatch && (0, chain_js_1.isSamePair)(botA, botB, pA, pB)) {
133
+ if (!fallbackMatch && isSamePair(botA, botB, pA, pB)) {
198
134
  fallbackMatch = p;
199
135
  }
200
136
  }
@@ -213,25 +149,25 @@ function applyAmaSlopeOverrides(target, overrides) {
213
149
  return target;
214
150
  target.amaSlope = { ...(target.amaSlope || {}) };
215
151
  const previousLookbackBars = target.amaSlope.lookbackBars;
216
- const explicitMode = (0, market_adapter_service_js_1.normalizeAmaSlopePercentMode)(overrides.amaSlopePercentMode
152
+ const explicitMode = normalizeAmaSlopePercentMode(overrides.amaSlopePercentMode
217
153
  ?? overrides.amaSlopeUnits
218
154
  ?? overrides.amaSlope?.percentMode
219
155
  ?? overrides.amaSlope?.units);
220
156
  if (explicitMode)
221
157
  target.amaSlopePercentMode = explicitMode;
222
- const mode = explicitMode || target.amaSlopePercentMode || market_adapter_service_js_1.AMA_SLOPE_PERCENT_MODE_PER_BAR;
158
+ const mode = explicitMode || target.amaSlopePercentMode || AMA_SLOPE_PERCENT_MODE_PER_BAR;
223
159
  if (overrides.amaSlopeDeltaThresholdPercent != null) {
224
- target.amaSlopeDeltaThresholdPercent = (0, market_adapter_service_js_1.convertSlopePercentToPerBar)(overrides.amaSlopeDeltaThresholdPercent, overrides.amaSlope?.lookbackBars ?? previousLookbackBars, mode);
160
+ target.amaSlopeDeltaThresholdPercent = convertSlopePercentToPerBar(overrides.amaSlopeDeltaThresholdPercent, overrides.amaSlope?.lookbackBars ?? previousLookbackBars, mode);
225
161
  }
226
162
  if (overrides.amaSlope && typeof overrides.amaSlope === 'object') {
227
163
  const { percentMode: _percentMode, units: _units, maxSlopePct, neutralZonePct, ...amaSlopeRest } = overrides.amaSlope;
228
164
  target.amaSlope = { ...target.amaSlope, ...amaSlopeRest };
229
165
  const lookbackBars = target.amaSlope.lookbackBars ?? previousLookbackBars;
230
166
  if (maxSlopePct != null) {
231
- target.amaSlope.maxSlopePct = (0, market_adapter_service_js_1.convertSlopePercentToPerBar)(maxSlopePct, lookbackBars, mode);
167
+ target.amaSlope.maxSlopePct = convertSlopePercentToPerBar(maxSlopePct, lookbackBars, mode);
232
168
  }
233
169
  if (neutralZonePct != null) {
234
- target.amaSlope.neutralZonePct = (0, market_adapter_service_js_1.convertSlopePercentToPerBar)(neutralZonePct, lookbackBars, mode);
170
+ target.amaSlope.neutralZonePct = convertSlopePercentToPerBar(neutralZonePct, lookbackBars, mode);
235
171
  }
236
172
  }
237
173
  return target;
@@ -279,7 +215,7 @@ function applyMarketAdapterOverrides(target, overrides, opts = {}) {
279
215
  'dispScaleMinPct',
280
216
  ]);
281
217
  if (overrides.maxVolatilityOffset != null) {
282
- target.maxVolatilityOffset = (0, config_normalizers_js_1.normalizeMaxVolatilityOffset)(overrides.maxVolatilityOffset);
218
+ target.maxVolatilityOffset = normalizeMaxVolatilityOffset(overrides.maxVolatilityOffset);
283
219
  }
284
220
  // Per-field merge for asymmetricBounds so a bot-level override (e.g. only
285
221
  // minScaleSlots) does not wipe a market-level maxAsymmetryFactor. Mirrors how
@@ -288,9 +224,9 @@ function applyMarketAdapterOverrides(target, overrides, opts = {}) {
288
224
  target.asymmetricBounds = { ...(target.asymmetricBounds || {}), ...overrides.asymmetricBounds };
289
225
  }
290
226
  if (overrides.atrPeriod != null)
291
- target.atrPeriod = (0, config_normalizers_js_1.normalizeAtrPeriod)(overrides.atrPeriod);
227
+ target.atrPeriod = normalizeAtrPeriod(overrides.atrPeriod);
292
228
  if (overrides.volatilityThreshold != null) {
293
- target.volatilityThreshold = (0, config_normalizers_js_1.normalizeVolatilityThreshold)(overrides.volatilityThreshold);
229
+ target.volatilityThreshold = normalizeVolatilityThreshold(overrides.volatilityThreshold);
294
230
  }
295
231
  if (overrides.peNodes)
296
232
  target.peNodes = overrides.peNodes;
@@ -327,10 +263,9 @@ function resolveBotCfg(bot, globalCfg) {
327
263
  }
328
264
  return merged;
329
265
  }
330
- const DEFAULT_AMA_KEY = String(constants_1.MARKET_ADAPTER.DEFAULT_AMA_KEY).toUpperCase();
331
- const BUILTIN_AMAS = constants_1.MARKET_ADAPTER.AMAS;
332
- const DEFAULT_AMA = constants_1.MARKET_ADAPTER.AMAS.AMA3;
333
- exports.DEFAULT_AMA = DEFAULT_AMA;
266
+ const DEFAULT_AMA_KEY = String(MARKET_ADAPTER.DEFAULT_AMA_KEY).toUpperCase();
267
+ const BUILTIN_AMAS = MARKET_ADAPTER.AMAS;
268
+ const DEFAULT_AMA = MARKET_ADAPTER.AMAS.AMA3;
334
269
  const AMA_KEYWORDS = new Set(['ama', 'ama1', 'ama2', 'ama3', 'ama4']);
335
270
  const AMA_PRESET_KEYS = ['AMA1', 'AMA2', 'AMA3', 'AMA4'];
336
271
  function normalizeAmaPreset(raw) {
@@ -356,17 +291,17 @@ function isAmaKeyword(raw) {
356
291
  function usesAmaGridPrice(bot) {
357
292
  return isAmaKeyword(bot?.gridPrice);
358
293
  }
359
- function usesOrderbookMarketSource(bot) {
360
- return (0, chain_js_1.resolveMarketSourceForBot)(bot) === 'book';
294
+ function usesBookMarketSource(bot) {
295
+ return resolveMarketSourceForBot(bot) === 'book';
361
296
  }
362
297
  function findAmaProfileForBot(bot, ctx) {
363
- const profiles = (0, tradingview_uplot_chart_generator_1.loadMarketProfiles)()?.profiles || [];
298
+ const profiles = loadMarketProfiles()?.profiles || [];
364
299
  if (profiles.length === 0)
365
300
  return null;
366
- const botAssetA = (0, chain_js_1.normalizeAssetSymbol)(bot?.assetA);
367
- const botAssetB = (0, chain_js_1.normalizeAssetSymbol)(bot?.assetB);
368
- const ctxAssetAId = (0, chain_js_1.normalizeAssetSymbol)(ctx?.assetA?.id);
369
- const ctxAssetBId = (0, chain_js_1.normalizeAssetSymbol)(ctx?.assetB?.id);
301
+ const botAssetA = normalizeAssetSymbol(bot?.assetA);
302
+ const botAssetB = normalizeAssetSymbol(bot?.assetB);
303
+ const ctxAssetAId = normalizeAssetSymbol(ctx?.assetA?.id);
304
+ const ctxAssetBId = normalizeAssetSymbol(ctx?.assetB?.id);
370
305
  if (!botAssetA && !ctxAssetAId)
371
306
  return null;
372
307
  if (!botAssetB && !ctxAssetBId)
@@ -376,12 +311,12 @@ function findAmaProfileForBot(bot, ctx) {
376
311
  const pB = p?.assetB;
377
312
  const pAId = p?.assetAId;
378
313
  const pBId = p?.assetBId;
379
- const exactBySymbol = botAssetA && botAssetB && pA && pB && (0, chain_js_1.isExactPair)(botAssetA, botAssetB, pA, pB);
314
+ const exactBySymbol = botAssetA && botAssetB && pA && pB && isExactPair(botAssetA, botAssetB, pA, pB);
380
315
  const exactById = ctxAssetAId && ctxAssetBId && pAId && pBId
381
- && (0, chain_js_1.isExactPairIds)(ctxAssetAId, ctxAssetBId, pAId, pBId);
382
- const symmetricBySymbol = botAssetA && botAssetB && pA && pB && (0, chain_js_1.isSamePair)(botAssetA, botAssetB, pA, pB);
316
+ && isExactPairIds(ctxAssetAId, ctxAssetBId, pAId, pBId);
317
+ const symmetricBySymbol = botAssetA && botAssetB && pA && pB && isSamePair(botAssetA, botAssetB, pA, pB);
383
318
  const symmetricById = ctxAssetAId && ctxAssetBId && pAId && pBId
384
- && (0, chain_js_1.isSamePairIds)(ctxAssetAId, ctxAssetBId, pAId, pBId);
319
+ && isSamePairIds(ctxAssetAId, ctxAssetBId, pAId, pBId);
385
320
  const matchRank = (exactById || exactBySymbol)
386
321
  ? 2
387
322
  : ((symmetricById || symmetricBySymbol) ? 1 : 0);
@@ -414,7 +349,7 @@ function normalizeErSmoothPeriod(raw, fallback = 0) {
414
349
  }
415
350
  function resolveErSmoothPeriodForBot(bot) {
416
351
  const raw = (bot && typeof bot.ama === 'object' && bot.ama !== null) ? bot.ama : {};
417
- const globalErSmoothPeriod = normalizeErSmoothPeriod(constants_1.MARKET_ADAPTER.AMA_ER_SMOOTH_FAST_PERIOD, 0);
352
+ const globalErSmoothPeriod = normalizeErSmoothPeriod(MARKET_ADAPTER.AMA_ER_SMOOTH_FAST_PERIOD, 0);
418
353
  if (Object.prototype.hasOwnProperty.call(raw, 'erSmoothPeriod')) {
419
354
  return normalizeErSmoothPeriod(raw.erSmoothPeriod, globalErSmoothPeriod);
420
355
  }
@@ -482,7 +417,7 @@ function withRetries(fn, attempts, baseDelayMs, label) {
482
417
  break;
483
418
  const waitMs = Math.max(0, baseDelayMs) * (i + 1);
484
419
  if (waitMs > 0)
485
- await (0, system_1.sleep)(waitMs);
420
+ await sleep(waitMs);
486
421
  }
487
422
  }
488
423
  const msg = label ? `${label}: ${lastErr?.message || 'unknown error'}` : (lastErr?.message || 'unknown error');
@@ -605,7 +540,7 @@ function applyRuntimeDefaultsFromGeneralSettings(cfg, provided = {}, settingsOve
605
540
  const out = { ...cfg };
606
541
  if (!provided?.deltaThresholdPercent) {
607
542
  const settings = settingsOverride === undefined
608
- ? (0, general_settings_1.readGeneralSettings)({ fallback: null })
543
+ ? readGeneralSettings({ fallback: null })
609
544
  : settingsOverride;
610
545
  const fromSettings = resolveDeltaThresholdPercentFromGeneralSettings(settings);
611
546
  if (fromSettings != null) {
@@ -614,8 +549,8 @@ function applyRuntimeDefaultsFromGeneralSettings(cfg, provided = {}, settingsOve
614
549
  }
615
550
  return out;
616
551
  }
617
- const marketAdapterLogFile = path_api_1.path.join(paths_1.PATHS.LOGS_DIR, 'market_adapter.log');
618
- const logger = new logger_1.default('MarketAdapter', { quiet: DEFAULTS.quiet, logFile: marketAdapterLogFile });
552
+ const marketAdapterLogFile = path.join(PATHS.LOGS_DIR, 'market_adapter.log');
553
+ const logger = new Logger('MarketAdapter', { quiet: DEFAULTS.quiet, logFile: marketAdapterLogFile });
619
554
  function log(cfg, ...args) {
620
555
  logger.quiet = !!cfg?.quiet;
621
556
  logger.info(...args);
@@ -650,24 +585,24 @@ function loadActiveBots() {
650
585
  if (!storage.exists(BOTS_FILE)) {
651
586
  throw new Error(`Bots file not found at ${BOTS_FILE}`);
652
587
  }
653
- const raw = (0, system_1.parseJsonWithComments)(storage.readFile(BOTS_FILE));
588
+ const raw = parseJsonWithComments(storage.readFile(BOTS_FILE));
654
589
  const bots = Array.isArray(raw?.bots) ? raw.bots : (Array.isArray(raw) ? raw : []);
655
590
  return bots
656
- .map((b, i) => (0, bot_settings_1.normalizeBotEntry)(b, i))
591
+ .map((b, i) => normalizeBotEntry(b, i))
657
592
  .filter((b) => b.active);
658
593
  }
659
594
  function loadJson(filePath, defaultValue) {
660
595
  try {
661
596
  if (!storage.exists(filePath))
662
597
  return defaultValue;
663
- return (0, fs_utils_1.readJSON)(filePath);
598
+ return readJSON(filePath);
664
599
  }
665
600
  catch (_) {
666
601
  return defaultValue;
667
602
  }
668
603
  }
669
604
  function saveJson(filePath, data) {
670
- (0, atomic_write_1.writeJsonAtomic)(filePath, data);
605
+ writeJsonAtomic(filePath, data);
671
606
  }
672
607
  function parseChainTimeToMs(timeStr) {
673
608
  if (!timeStr)
@@ -678,8 +613,8 @@ function parseChainTimeToMs(timeStr) {
678
613
  function candleFileForBot(botKey, intervalSeconds = RUNTIME_DEFAULTS.intervalSeconds) {
679
614
  const label = intervalSeconds === RUNTIME_DEFAULTS.intervalSeconds
680
615
  ? RUNTIME_DEFAULTS.intervalLabel
681
- : (0, interval_utils_1.toIntervalLabel)(intervalSeconds);
682
- return path_api_1.path.join(DATA_DIR, `market_adapter_${botKey}_${label}.json`);
616
+ : toIntervalLabel(intervalSeconds);
617
+ return path.join(DATA_DIR, `market_adapter_${botKey}_${label}.json`);
683
618
  }
684
619
  function calculateBotThreshold(cfg) {
685
620
  const value = Number(cfg?.deltaThresholdPercent);
@@ -747,7 +682,7 @@ function calcAmaComparison(candles, bot = null, ctx = null) {
747
682
  out.push({ ...p, value: null, ok: false });
748
683
  continue;
749
684
  }
750
- const values = (0, ama_1.calculateAMA)(closes, {
685
+ const values = calculateAMA(closes, {
751
686
  erPeriod: p.erPeriod,
752
687
  fastPeriod: p.fastPeriod,
753
688
  slowPeriod: p.slowPeriod,
@@ -759,7 +694,7 @@ function calcAmaComparison(candles, bot = null, ctx = null) {
759
694
  return out;
760
695
  }
761
696
  async function fetchNativeTradesSince(poolId, sinceMs, pageLimit, maxPages) {
762
- const { BitShares } = (0, chain_js_1.getBitsharesClient)();
697
+ const { BitShares } = getBitsharesClient();
763
698
  const trades = [];
764
699
  const seenSequences = new Set();
765
700
  let pages = 0;
@@ -829,7 +764,7 @@ function nativeHistoryRowToTrade(row) {
829
764
  };
830
765
  }
831
766
  async function fetchNativeTradesUntilOverlap(poolId, overlapSequences, minOverlap, pageLimit, maxPages) {
832
- const { BitShares } = (0, chain_js_1.getBitsharesClient)();
767
+ const { BitShares } = getBitsharesClient();
833
768
  const overlapSet = new Set((Array.isArray(overlapSequences) ? overlapSequences : [])
834
769
  .map((v) => String(v))
835
770
  .filter((v) => v !== ''));
@@ -886,7 +821,7 @@ async function fetchNativeTradesUntilOverlap(poolId, overlapSequences, minOverla
886
821
  };
887
822
  }
888
823
  async function fetchNativeMarketHistorySince(assetA, assetB, sinceMs, untilMs, intervalSeconds, options = {}) {
889
- const { BitShares } = (0, chain_js_1.getBitsharesClient)();
824
+ const { BitShares } = getBitsharesClient();
890
825
  if (!BitShares) {
891
826
  throw new Error('BitShares client unavailable');
892
827
  }
@@ -902,14 +837,14 @@ async function fetchNativeMarketHistorySince(assetA, assetB, sinceMs, untilMs, i
902
837
  else {
903
838
  throw new Error('native market history source unavailable');
904
839
  }
905
- let candles = (0, native_history_js_1.normalizeNativeMarketHistoryCandles)(history, assetA, assetB, intervalSeconds);
840
+ let candles = normalizeNativeMarketHistoryCandles(history, assetA, assetB, intervalSeconds);
906
841
  if (candles.length > 0 && typeof options.fillCandleGaps === 'function') {
907
842
  candles = options.fillCandleGaps(candles, intervalSeconds);
908
843
  }
909
844
  return candles;
910
845
  }
911
846
  function writeGridResetTrigger(bot, payload) {
912
- const triggerPath = (0, paths_1.getRecalculateTriggerFile)(bot.botKey);
847
+ const triggerPath = getRecalculateTriggerFile(bot.botKey);
913
848
  const content = {
914
849
  createdAt: new Date().toISOString(),
915
850
  source: MARKET_ADAPTER_SOURCE,
@@ -917,10 +852,10 @@ function writeGridResetTrigger(bot, payload) {
917
852
  botKey: bot.botKey,
918
853
  ...payload,
919
854
  };
920
- (0, atomic_write_1.writeJsonAtomic)(triggerPath, content);
855
+ writeJsonAtomic(triggerPath, content);
921
856
  return triggerPath;
922
857
  }
923
- const ORDERS_DIR = paths_1.PATHS.ORDERS_DIR;
858
+ const ORDERS_DIR = PATHS.ORDERS_DIR;
924
859
  /**
925
860
  * Atomically write the dynamic grid snapshot for a bot to profiles/orders/<botKey>.dynamicgrid.json.
926
861
  * Contains AMA-derived center price and any computed effective weight offsets.
@@ -929,7 +864,7 @@ const ORDERS_DIR = paths_1.PATHS.ORDERS_DIR;
929
864
  */
930
865
  function writeBotDynamicGrid(botKey, gridCenterPrice, options = {}) {
931
866
  try {
932
- const filePath = path_api_1.path.join(ORDERS_DIR, `${botKey}.dynamicgrid.json`);
867
+ const filePath = path.join(ORDERS_DIR, `${botKey}.dynamicgrid.json`);
933
868
  const preserveGridResetMetadata = (target, snapshot) => {
934
869
  if (!snapshot?.lastGridResetAt)
935
870
  return target;
@@ -956,16 +891,16 @@ function writeBotDynamicGrid(botKey, gridCenterPrice, options = {}) {
956
891
  }
957
892
  return target;
958
893
  };
959
- const result = (0, dynamic_grid_snapshot_1.updateDynamicGridSnapshotSync)(filePath, (previousSnapshot) => {
894
+ const result = updateDynamicGridSnapshotSync(filePath, (previousSnapshot) => {
960
895
  const amaCenterPrice = Number(options.amaCenterPrice);
961
896
  const resolvedGridCenterPrice = Number.isFinite(Number(gridCenterPrice))
962
- ? (0, math_utils_1.roundTo)(Number(gridCenterPrice), 1e8)
897
+ ? roundTo(Number(gridCenterPrice), 1e8)
963
898
  : null;
964
899
  const payload = {
965
900
  gridCenterPrice: resolvedGridCenterPrice,
966
901
  centerPrice: resolvedGridCenterPrice,
967
902
  amaCenterPrice: Number.isFinite(amaCenterPrice) && amaCenterPrice > 0 ? amaCenterPrice : resolvedGridCenterPrice,
968
- amaSlopePercentMode: market_adapter_service_js_1.AMA_SLOPE_PERCENT_MODE_PER_BAR,
903
+ amaSlopePercentMode: AMA_SLOPE_PERCENT_MODE_PER_BAR,
969
904
  updatedAt: new Date().toISOString(),
970
905
  source: MARKET_ADAPTER_SOURCE,
971
906
  };
@@ -999,14 +934,14 @@ function writeBotDynamicGrid(botKey, gridCenterPrice, options = {}) {
999
934
  return result.ok && result.written;
1000
935
  }
1001
936
  catch (err) {
1002
- logger.warn(`[writeBotDynamicGrid] Failed to write dynamic grid for ${botKey}: ${(0, errors_1.getErrorMessage)(err)}`);
937
+ logger.warn(`[writeBotDynamicGrid] Failed to write dynamic grid for ${botKey}: ${getErrorMessage(err)}`);
1003
938
  return false;
1004
939
  }
1005
940
  }
1006
- const market_adapter_service_js_1 = require("./core/market_adapter_service.js");
1007
- const errors_1 = require("../modules/utils/errors");
1008
- const adapterService = new market_adapter_service_js_1.MarketAdapterService({
1009
- resolveBotContext: chain_js_1.resolveBotContext,
941
+ import { MarketAdapterService, AMA_SLOPE_PERCENT_MODE_PER_BAR, normalizeAmaSlopePercentMode, convertSlopePercentToPerBar, } from './core/market_adapter_service.js';
942
+ import { getErrorMessage } from '../modules/utils/errors.js';
943
+ const adapterService = new MarketAdapterService({
944
+ resolveBotContext,
1010
945
  resolveAmaForBot,
1011
946
  candleFileForBot,
1012
947
  loadJson,
@@ -1019,22 +954,22 @@ const adapterService = new market_adapter_service_js_1.MarketAdapterService({
1019
954
  fetchNativeMarketHistorySince,
1020
955
  fetchNativeTradesSince,
1021
956
  fetchNativeTradesUntilOverlap,
1022
- tradesToCandles: candle_utils_1.tradesToCandles,
1023
- detectMissingCandleTimestamps: candle_utils_1.detectMissingCandleTimestamps,
1024
- fillCandleGaps: candle_utils_1.fillCandleGaps,
1025
- detectStaleTail: candle_utils_1.detectStaleTail,
1026
- pruneStaleTail: candle_utils_1.pruneStaleTail,
1027
- mergeCandles: candle_utils_1.mergeCandles,
957
+ tradesToCandles,
958
+ detectMissingCandleTimestamps,
959
+ fillCandleGaps,
960
+ detectStaleTail,
961
+ pruneStaleTail,
962
+ mergeCandles,
1028
963
  pruneCandles,
1029
964
  calcAmaComparison,
1030
965
  writeGridResetTrigger,
1031
966
  writeBotDynamicGrid,
1032
- isBotWhitelisted: market_adapter_whitelist_js_1.isBotWhitelisted,
1033
- isBotDynamicWeightWhitelisted: market_adapter_whitelist_js_1.isBotDynamicWeightWhitelisted,
1034
- isBotGridRangeScalingWhitelisted: market_adapter_whitelist_js_1.isBotGridRangeScalingWhitelisted,
967
+ isBotWhitelisted,
968
+ isBotDynamicWeightWhitelisted,
969
+ isBotGridRangeScalingWhitelisted,
1035
970
  logger,
1036
971
  root: ROOT,
1037
- path: path_api_1.path,
972
+ path,
1038
973
  });
1039
974
  async function processBot(bot, state, cfg, contextCache, hooks = {}) {
1040
975
  return adapterService.processBot(bot, state, cfg, contextCache, hooks);
@@ -1058,7 +993,7 @@ function writeCenterSnapshot(state) {
1058
993
  lastDeltaPercent: v.lastDeltaPercent,
1059
994
  amaSlopeDeltaPercent: v.amaSlopeDeltaPercent,
1060
995
  amaSlopeThresholdPercent: v.amaSlopeThresholdPercent,
1061
- amaSlopePercentMode: v.amaSlopePercentMode || market_adapter_service_js_1.AMA_SLOPE_PERCENT_MODE_PER_BAR,
996
+ amaSlopePercentMode: v.amaSlopePercentMode || AMA_SLOPE_PERCENT_MODE_PER_BAR,
1062
997
  gridRangeScalingAmaSlope: v.gridRangeScalingAmaSlope,
1063
998
  weights: v.weights,
1064
999
  effectiveWeights: v.effectiveWeights,
@@ -1077,10 +1012,10 @@ function mergeGridResetMetadataFromDynamicGrid(state) {
1077
1012
  for (const [botKey, botState] of Object.entries(bots)) {
1078
1013
  if (!botState || typeof botState !== 'object')
1079
1014
  continue;
1080
- const snapshotPath = path_api_1.path.join(ORDERS_DIR, `${botKey}.dynamicgrid.json`);
1015
+ const snapshotPath = path.join(ORDERS_DIR, `${botKey}.dynamicgrid.json`);
1081
1016
  let snapshot;
1082
1017
  try {
1083
- snapshot = (0, fs_utils_1.readJSON)(snapshotPath);
1018
+ snapshot = readJSON(snapshotPath);
1084
1019
  }
1085
1020
  catch (_) {
1086
1021
  continue;
@@ -1112,7 +1047,7 @@ async function runOnce(cfg, state, contextCache) {
1112
1047
  log(cfg, `Active bots: ${allBots.length} | AMA-grid bots: ${bots.length}`);
1113
1048
  const results = [];
1114
1049
  for (const bot of bots) {
1115
- const isDryRun = cfg.dryRun || (!cfg.whitelistAll && !(0, market_adapter_whitelist_js_1.isBotWhitelisted)(bot.botKey));
1050
+ const isDryRun = cfg.dryRun || (!cfg.whitelistAll && !isBotWhitelisted(bot.botKey));
1116
1051
  write(cfg, `- ${bot.name} (${bot.botKey})${isDryRun ? ' [DRY RUN]' : ''}: `);
1117
1052
  try {
1118
1053
  const botCfg = resolveBotCfg(bot, cfg);
@@ -1142,9 +1077,9 @@ async function runOnce(cfg, state, contextCache) {
1142
1077
  const patchText = Number.isFinite(r.kibanaGapRepairCount) && r.kibanaGapRepairCount > 0 ? ` KIBANA_PATCH(${r.kibanaGapRepairCount})` : '';
1143
1078
  const backfillText = Number.isFinite(r.kibanaBackfillCount) && r.kibanaBackfillCount > 0 ? ` BACKFILL(${r.kibanaBackfillCount})` : '';
1144
1079
  const gapText = Number.isFinite(r.unresolvedGapCount) && r.unresolvedGapCount > 0 ? ` GAPS(${r.unresolvedGapCount})` : '';
1145
- const trigText = r.triggered ? ` TRIGGERED -> ${r.triggerPath ? path_api_1.path.relative(ROOT, r.triggerPath) : '[suppressed, dry-run]'}` : '';
1080
+ const trigText = r.triggered ? ` TRIGGERED -> ${r.triggerPath ? path.relative(ROOT, r.triggerPath) : '[suppressed, dry-run]'}` : '';
1146
1081
  const pendingText = r.pendingClosedCandle ? ' WAITING_FOR_CLOSED_CANDLE' : '';
1147
- const weightText = (0, log_format_js_1.buildWeightSummary)(r.weights);
1082
+ const weightText = buildWeightSummary(r.weights);
1148
1083
  const trendText = r.amaSlope?.trend ? ` trend=${r.amaSlope.trend}` : '';
1149
1084
  const warmupText = r.triggerSuppressedReason === 'ama_warmup_insufficient'
1150
1085
  ? ` WARMUP_INSUFFICIENT(used=${r.analysisCandleCount}${Number.isFinite(r.analysisKeepCount) ? `/${r.analysisKeepCount}` : ''})`
@@ -1179,19 +1114,19 @@ async function runOnce(cfg, state, contextCache) {
1179
1114
  }
1180
1115
  if (isOneHourResult && r.weights?.meta) {
1181
1116
  const m = r.weights.meta;
1182
- log(cfg, ` Inputs: ${(0, log_format_js_1.buildDynamicWeightInputsLog)(m, r.amaConfig)}`);
1183
- log(cfg, ` Tuning: ${(0, log_format_js_1.buildDynamicWeightTuningLog)(m)}`);
1117
+ log(cfg, ` Inputs: ${buildDynamicWeightInputsLog(m, r.amaConfig)}`);
1118
+ log(cfg, ` Tuning: ${buildDynamicWeightTuningLog(m)}`);
1184
1119
  }
1185
1120
  if (isOneHourResult && r.gridRangeScalingWhitelisted) {
1186
1121
  const asymSource = r.weights?.meta && Number.isFinite(r.weights.meta.rawAsymmetryFactor)
1187
1122
  ? r.weights.meta
1188
1123
  : r;
1189
- log(cfg, ` Asymmetric bounds: ${(0, log_format_js_1.buildAsymmetricBoundsLog)(asymSource)}`);
1124
+ log(cfg, ` Asymmetric bounds: ${buildAsymmetricBoundsLog(asymSource)}`);
1190
1125
  }
1191
1126
  if (Array.isArray(r.amaComparison) && r.amaComparison.length > 0) {
1192
1127
  const parts = r.amaComparison.map((a) => {
1193
1128
  const val = Number.isFinite(a.value) ? a.value.toFixed(8) : 'n/a';
1194
- const erSmoothText = Number.isFinite(Number(a.erSmoothPeriod)) ? `/es${(0, math_utils_1.fixedTo)(a.erSmoothPeriod, 0)}` : '';
1129
+ const erSmoothText = Number.isFinite(Number(a.erSmoothPeriod)) ? `/es${fixedTo(a.erSmoothPeriod, 0)}` : '';
1195
1130
  return `${a.name}[${a.erPeriod}/${a.fastPeriod}/${a.slowPeriod}${erSmoothText}]=${val}`;
1196
1131
  });
1197
1132
  log(cfg, ` AMA compare: ${parts.join(' | ')}`);
@@ -1203,12 +1138,12 @@ async function runOnce(cfg, state, contextCache) {
1203
1138
  });
1204
1139
  }
1205
1140
  catch (err) {
1206
- log(cfg, `error (${(0, errors_1.getErrorMessage)(err)})`);
1141
+ log(cfg, `error (${getErrorMessage(err)})`);
1207
1142
  results.push({
1208
1143
  botName: bot.name,
1209
1144
  botKey: bot.botKey,
1210
1145
  ok: false,
1211
- reason: (0, errors_1.getErrorMessage)(err),
1146
+ reason: getErrorMessage(err),
1212
1147
  });
1213
1148
  }
1214
1149
  }
@@ -1260,13 +1195,13 @@ async function runOnceForAma(overrides = {}) {
1260
1195
  ...overrides,
1261
1196
  once: true,
1262
1197
  });
1263
- (0, system_1.ensureDir)(DATA_DIR);
1264
- (0, system_1.ensureDir)(STATE_DIR);
1265
- const lock = (0, file_lock_1.acquireFileLockSync)(LOCK_FILE, {
1198
+ ensureDir(DATA_DIR);
1199
+ ensureDir(STATE_DIR);
1200
+ const lock = acquireFileLockSync(LOCK_FILE, {
1266
1201
  staleMs: Math.max(2, cfg.pollSeconds) * 1000 * 2,
1267
1202
  });
1268
1203
  try {
1269
- const { connectClient } = (0, chain_js_1.getBitsharesClient)();
1204
+ const { connectClient } = getBitsharesClient();
1270
1205
  await connectClient();
1271
1206
  const state = loadJson(STATE_FILE, { meta: {}, bots: {} });
1272
1207
  const contextCache = new Map();
@@ -1278,25 +1213,25 @@ async function runOnceForAma(overrides = {}) {
1278
1213
  };
1279
1214
  }
1280
1215
  finally {
1281
- const { disconnectClient } = (0, chain_js_1.getBitsharesClient)();
1216
+ const { disconnectClient } = getBitsharesClient();
1282
1217
  disconnectClient();
1283
- (0, file_lock_1.releaseFileLockSync)(lock);
1218
+ releaseFileLockSync(lock);
1284
1219
  }
1285
1220
  }
1286
1221
  async function main() {
1287
1222
  const cfg = parseArgs();
1288
1223
  logger.quiet = cfg.quiet;
1289
- (0, system_1.ensureDir)(DATA_DIR);
1290
- (0, system_1.ensureDir)(STATE_DIR);
1291
- const lock = (0, file_lock_1.acquireFileLockSync)(LOCK_FILE, {
1224
+ ensureDir(DATA_DIR);
1225
+ ensureDir(STATE_DIR);
1226
+ const lock = acquireFileLockSync(LOCK_FILE, {
1292
1227
  staleMs: Math.max(2, cfg.pollSeconds) * 1000 * 2,
1293
1228
  });
1294
1229
  try {
1295
1230
  log(cfg, '═══════════════════════════════════════');
1296
1231
  log(cfg, ' Market Adapter Hub Settings:');
1297
1232
  log(cfg, ` runtime : poll=${cfg.pollSeconds}s | bootstrap=${cfg.bootstrapLookbackHours}h | native=${cfg.nativeBackfillHours}h | stale=${cfg.maxStaleHours}h`);
1298
- log(cfg, ` fetch : retries=${cfg.sourceRetries}x${cfg.retryDelayMs}ms | pages=${cfg.maxPages}x${cfg.pageLimit} | delta=${(0, log_format_js_1.formatLogPercent)(cfg.deltaThresholdPercent, 3)} | dryRun=${cfg.dryRun ? 'yes' : 'no'} | quiet=${cfg.quiet ? 'yes' : 'no'} | metrics=${cfg.metricsJson ? 'yes' : 'no'}`);
1299
- log(cfg, (0, log_format_js_1.buildStartupDefaultsLog)(DEFAULT_AMA, constants_1.DEFAULT_CONFIG, constants_1.MARKET_ADAPTER));
1233
+ log(cfg, ` fetch : retries=${cfg.sourceRetries}x${cfg.retryDelayMs}ms | pages=${cfg.maxPages}x${cfg.pageLimit} | delta=${formatLogPercent(cfg.deltaThresholdPercent, 3)} | dryRun=${cfg.dryRun ? 'yes' : 'no'} | quiet=${cfg.quiet ? 'yes' : 'no'} | metrics=${cfg.metricsJson ? 'yes' : 'no'}`);
1234
+ log(cfg, buildStartupDefaultsLog(DEFAULT_AMA, DEFAULT_CONFIG, MARKET_ADAPTER));
1300
1235
  log(cfg, '═══════════════════════════════════════');
1301
1236
  if (cfg.once && cfg.dryRun) {
1302
1237
  log(cfg, 'Dry run: config validation + lock acquisition OK (no network, no writes).');
@@ -1307,7 +1242,7 @@ async function main() {
1307
1242
  let lastErr = null;
1308
1243
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
1309
1244
  try {
1310
- const { connectClient } = (0, chain_js_1.getBitsharesClient)();
1245
+ const { connectClient } = getBitsharesClient();
1311
1246
  await connectClient();
1312
1247
  lastErr = null;
1313
1248
  break;
@@ -1315,9 +1250,9 @@ async function main() {
1315
1250
  catch (err) {
1316
1251
  lastErr = err;
1317
1252
  if (attempt < maxRetries) {
1318
- const delay = Math.min(1000 * Math.pow(2, attempt - 1), constants_1.TIMING.RETRY_BACKOFF_CAP_MS);
1319
- logger.warn(`Connection attempt ${attempt}/${maxRetries} failed: ${(0, errors_1.getErrorMessage)(err)}; retrying in ${delay}ms`);
1320
- await (0, system_1.sleep)(delay);
1253
+ const delay = Math.min(1000 * Math.pow(2, attempt - 1), TIMING.RETRY_BACKOFF_CAP_MS);
1254
+ logger.warn(`Connection attempt ${attempt}/${maxRetries} failed: ${getErrorMessage(err)}; retrying in ${delay}ms`);
1255
+ await sleep(delay);
1321
1256
  }
1322
1257
  }
1323
1258
  }
@@ -1340,33 +1275,34 @@ async function main() {
1340
1275
  // Connect for this cycle using the lightweight native read-only client.
1341
1276
  // Tear down after runOnce so the connection never sits idle.
1342
1277
  try {
1343
- const { connectClient } = (0, chain_js_1.getBitsharesClient)();
1278
+ const { connectClient } = getBitsharesClient();
1344
1279
  await connectClient();
1345
1280
  }
1346
1281
  catch (err) {
1347
- logger.error(`Connection failed before cycle: ${(0, errors_1.getErrorMessage)(err)}`);
1282
+ logger.error(`Connection failed before cycle: ${getErrorMessage(err)}`);
1348
1283
  // Fall through and let runOnce attempt to handle its own retries/failures
1349
1284
  }
1350
1285
  await runOnce(cfg, state, contextCache);
1351
1286
  try {
1352
- const { disconnectClient } = (0, chain_js_1.getBitsharesClient)();
1287
+ const { disconnectClient } = getBitsharesClient();
1353
1288
  disconnectClient();
1354
1289
  }
1355
1290
  catch (_) { }
1356
1291
  const sleepMs = sleepUntilAlignedBoundary(cfg.pollSeconds, started, Date.now());
1357
- await (0, system_1.sleep)(sleepMs);
1292
+ await sleep(sleepMs);
1358
1293
  }
1359
1294
  }
1360
1295
  finally {
1361
- (0, file_lock_1.releaseFileLockSync)(lock);
1296
+ releaseFileLockSync(lock);
1362
1297
  }
1363
1298
  }
1364
- if (require.main === module) {
1299
+ if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
1365
1300
  main()
1366
1301
  .then((exitCode) => process.exit(Number.isInteger(exitCode) ? exitCode : 0))
1367
1302
  .catch((err) => {
1368
- logger.error(`Fatal: ${(0, errors_1.getErrorMessage)(err)}`);
1303
+ logger.error(`Fatal: ${getErrorMessage(err)}`);
1369
1304
  process.exit(1);
1370
1305
  });
1371
1306
  }
1307
+ export { main, runOnceForAma, DEFAULT_AMA, DEFAULTS, calculateBotThreshold, calcAmaComparison, computeCandleStaleness, normalizeMarketSource, sleepUntilAlignedBoundary, resolveAmaForBot, resolveDeltaThresholdPercentFromGeneralSettings, applyRuntimeDefaultsFromGeneralSettings, resolveBotCfg, usesAmaGridPrice, usesBookMarketSource, isBotWhitelisted, isBotDynamicWeightWhitelisted, isBotAsymmetricBoundsWhitelisted, isBotGridRangeScalingWhitelisted, _resetCycleCache, writeCenterSnapshot, writeBotDynamicGrid, writeGridResetTrigger, mergeGridResetMetadataFromDynamicGrid, normalizeNativeMarketHistoryCandles, fetchNativeMarketHistorySince, setBitsharesClientForTests as _setBitsharesClientForTests, loadMarketAdapterSettings, findPairForBot };
1372
1308
  //# sourceMappingURL=market_adapter.js.map