dexbot 1.1.10

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 (807) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +287 -0
  3. package/claw/README.md +513 -0
  4. package/claw/scripts/memu_runner.py +385 -0
  5. package/claw/skills/bitshares-guide/SKILL.md +14 -0
  6. package/claw/skills/bitshares-guide/references/example-skill-shells.md +18 -0
  7. package/claw/skills/bitshares-guide/references/presentation-patterns.md +19 -0
  8. package/claw/skills/bitshares-guide/references/scope-guardrails.md +9 -0
  9. package/claw/skills/launcher-ops/SKILL.md +18 -0
  10. package/claw/skills/launcher-ops/references/launcher-workflow.md +23 -0
  11. package/claw/skills/margin-trading/SKILL.md +23 -0
  12. package/claw/skills/margin-trading/references/honest-asset-list.md +74 -0
  13. package/claw/skills/margin-trading/references/honest-assets.md +44 -0
  14. package/claw/skills/margin-trading/references/position-management.md +203 -0
  15. package/claw/skills/margin-trading/references/trading-concepts.md +80 -0
  16. package/claw/skills/memu-memory/SKILL.md +218 -0
  17. package/claw/skills/shared/references/js-automation-overview.md +24 -0
  18. package/claw/skills/shared/references/safety-and-staleness.md +11 -0
  19. package/claw/skills/shared/references/skill-boundaries.md +17 -0
  20. package/claw/skills/trend-detection/SKILL.md +33 -0
  21. package/claw/skills/trend-detection/agents/openai.yaml +3 -0
  22. package/claw/skills/trend-detection/references/service.md +45 -0
  23. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
  24. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
  25. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +149 -0
  26. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
  27. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +3 -0
  28. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
  29. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +387 -0
  30. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
  31. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
  32. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
  33. package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
  34. package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
  35. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
  36. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
  37. package/dist/analysis/ama_fitting/fetch_lp_candles.js +212 -0
  38. package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
  39. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +31 -0
  40. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
  41. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +249 -0
  42. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
  43. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +2 -0
  44. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
  45. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
  46. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
  47. package/dist/analysis/analyze_derivatives.d.ts +95 -0
  48. package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
  49. package/dist/analysis/analyze_derivatives.js +295 -0
  50. package/dist/analysis/analyze_derivatives.js.map +1 -0
  51. package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
  52. package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
  53. package/dist/analysis/analyze_dynamic_weight.js +208 -0
  54. package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
  55. package/dist/analysis/analyze_kalman.d.ts +13 -0
  56. package/dist/analysis/analyze_kalman.d.ts.map +1 -0
  57. package/dist/analysis/analyze_kalman.js +123 -0
  58. package/dist/analysis/analyze_kalman.js.map +1 -0
  59. package/dist/analysis/analyze_regime.d.ts +20 -0
  60. package/dist/analysis/analyze_regime.d.ts.map +1 -0
  61. package/dist/analysis/analyze_regime.js +139 -0
  62. package/dist/analysis/analyze_regime.js.map +1 -0
  63. package/dist/analysis/analyze_regime_windows.d.ts +19 -0
  64. package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
  65. package/dist/analysis/analyze_regime_windows.js +413 -0
  66. package/dist/analysis/analyze_regime_windows.js.map +1 -0
  67. package/dist/analysis/analyze_risk_profile.d.ts +3 -0
  68. package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
  69. package/dist/analysis/analyze_risk_profile.js +159 -0
  70. package/dist/analysis/analyze_risk_profile.js.map +1 -0
  71. package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
  72. package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
  73. package/dist/analysis/analyze_trade_heatmap.js +367 -0
  74. package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
  75. package/dist/analysis/analyze_volatility.d.ts +22 -0
  76. package/dist/analysis/analyze_volatility.d.ts.map +1 -0
  77. package/dist/analysis/analyze_volatility.js +172 -0
  78. package/dist/analysis/analyze_volatility.js.map +1 -0
  79. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +99 -0
  80. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
  81. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +804 -0
  82. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
  83. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
  84. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
  85. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +347 -0
  86. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
  87. package/dist/analysis/bot_fitting/shared_utils.d.ts +15 -0
  88. package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
  89. package/dist/analysis/bot_fitting/shared_utils.js +48 -0
  90. package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
  91. package/dist/analysis/bot_key_utils.d.ts +16 -0
  92. package/dist/analysis/bot_key_utils.d.ts.map +1 -0
  93. package/dist/analysis/bot_key_utils.js +61 -0
  94. package/dist/analysis/bot_key_utils.js.map +1 -0
  95. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
  96. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
  97. package/dist/analysis/bot_usage/discover_bot_accounts.js +498 -0
  98. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
  99. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +546 -0
  100. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
  101. package/dist/analysis/bot_usage/kibana_bot_queries.js +427 -0
  102. package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
  103. package/dist/analysis/chart_utils.d.ts +13 -0
  104. package/dist/analysis/chart_utils.d.ts.map +1 -0
  105. package/dist/analysis/chart_utils.js +142 -0
  106. package/dist/analysis/chart_utils.js.map +1 -0
  107. package/dist/analysis/derivative_chart_generator.d.ts +18 -0
  108. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
  109. package/dist/analysis/derivative_chart_generator.js +896 -0
  110. package/dist/analysis/derivative_chart_generator.js.map +1 -0
  111. package/dist/analysis/math_utils.d.ts +35 -0
  112. package/dist/analysis/math_utils.d.ts.map +1 -0
  113. package/dist/analysis/math_utils.js +121 -0
  114. package/dist/analysis/math_utils.js.map +1 -0
  115. package/dist/analysis/price_sources.d.ts +34 -0
  116. package/dist/analysis/price_sources.d.ts.map +1 -0
  117. package/dist/analysis/price_sources.js +103 -0
  118. package/dist/analysis/price_sources.js.map +1 -0
  119. package/dist/analysis/trade_profitability.d.ts +115 -0
  120. package/dist/analysis/trade_profitability.d.ts.map +1 -0
  121. package/dist/analysis/trade_profitability.js +1247 -0
  122. package/dist/analysis/trade_profitability.js.map +1 -0
  123. package/dist/analysis/tradingview/analyze_tradingview.d.ts +38 -0
  124. package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
  125. package/dist/analysis/tradingview/analyze_tradingview.js +212 -0
  126. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
  127. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +9 -0
  128. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -0
  129. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1717 -0
  130. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -0
  131. package/dist/analysis/trend_detection/derivative_analyzer.d.ts +250 -0
  132. package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
  133. package/dist/analysis/trend_detection/derivative_analyzer.js +903 -0
  134. package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
  135. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +6 -0
  136. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
  137. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1449 -0
  138. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
  139. package/dist/analysis/trend_detection/hurst_analyzer.d.ts +42 -0
  140. package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
  141. package/dist/analysis/trend_detection/hurst_analyzer.js +159 -0
  142. package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
  143. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +6 -0
  144. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
  145. package/dist/analysis/trend_detection/kalman_chart_generator.js +408 -0
  146. package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
  147. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +103 -0
  148. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
  149. package/dist/analysis/trend_detection/kalman_trend_analyzer.js +229 -0
  150. package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
  151. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +34 -0
  152. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
  153. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +89 -0
  154. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
  155. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +39 -0
  156. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
  157. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +132 -0
  158. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
  159. package/dist/analysis/trend_detection/regime_chart_generator.d.ts +6 -0
  160. package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
  161. package/dist/analysis/trend_detection/regime_chart_generator.js +345 -0
  162. package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
  163. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
  164. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
  165. package/dist/analysis/trend_detection/tests/test_kalman_trend.js +130 -0
  166. package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
  167. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
  168. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
  169. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +38 -0
  170. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
  171. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +6 -0
  172. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
  173. package/dist/analysis/trend_detection/volatility_chart_generator.js +732 -0
  174. package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
  175. package/dist/bot.d.ts +49 -0
  176. package/dist/bot.d.ts.map +1 -0
  177. package/dist/bot.js +221 -0
  178. package/dist/bot.js.map +1 -0
  179. package/dist/credential-daemon.d.ts +64 -0
  180. package/dist/credential-daemon.d.ts.map +1 -0
  181. package/dist/credential-daemon.js +987 -0
  182. package/dist/credential-daemon.js.map +1 -0
  183. package/dist/dexbot.d.ts +87 -0
  184. package/dist/dexbot.d.ts.map +1 -0
  185. package/dist/dexbot.js +1222 -0
  186. package/dist/dexbot.js.map +1 -0
  187. package/dist/market_adapter/ama_signal_runner.d.ts +3 -0
  188. package/dist/market_adapter/ama_signal_runner.d.ts.map +1 -0
  189. package/dist/market_adapter/ama_signal_runner.js +175 -0
  190. package/dist/market_adapter/ama_signal_runner.js.map +1 -0
  191. package/dist/market_adapter/candle_utils.d.ts +57 -0
  192. package/dist/market_adapter/candle_utils.d.ts.map +1 -0
  193. package/dist/market_adapter/candle_utils.js +252 -0
  194. package/dist/market_adapter/candle_utils.js.map +1 -0
  195. package/dist/market_adapter/core/asymmetric_bounds.d.ts +20 -0
  196. package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -0
  197. package/dist/market_adapter/core/asymmetric_bounds.js +88 -0
  198. package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -0
  199. package/dist/market_adapter/core/config_normalizers.d.ts +10 -0
  200. package/dist/market_adapter/core/config_normalizers.d.ts.map +1 -0
  201. package/dist/market_adapter/core/config_normalizers.js +24 -0
  202. package/dist/market_adapter/core/config_normalizers.js.map +1 -0
  203. package/dist/market_adapter/core/kibana_candles.d.ts +74 -0
  204. package/dist/market_adapter/core/kibana_candles.d.ts.map +1 -0
  205. package/dist/market_adapter/core/kibana_candles.js +249 -0
  206. package/dist/market_adapter/core/kibana_candles.js.map +1 -0
  207. package/dist/market_adapter/core/kibana_client.d.ts +27 -0
  208. package/dist/market_adapter/core/kibana_client.d.ts.map +1 -0
  209. package/dist/market_adapter/core/kibana_client.js +120 -0
  210. package/dist/market_adapter/core/kibana_client.js.map +1 -0
  211. package/dist/market_adapter/core/kibana_market_candles.d.ts +143 -0
  212. package/dist/market_adapter/core/kibana_market_candles.d.ts.map +1 -0
  213. package/dist/market_adapter/core/kibana_market_candles.js +170 -0
  214. package/dist/market_adapter/core/kibana_market_candles.js.map +1 -0
  215. package/dist/market_adapter/core/market_adapter_service.d.ts +210 -0
  216. package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -0
  217. package/dist/market_adapter/core/market_adapter_service.js +2328 -0
  218. package/dist/market_adapter/core/market_adapter_service.js.map +1 -0
  219. package/dist/market_adapter/core/strategies/ama.d.ts +2 -0
  220. package/dist/market_adapter/core/strategies/ama.d.ts.map +1 -0
  221. package/dist/market_adapter/core/strategies/ama.js +138 -0
  222. package/dist/market_adapter/core/strategies/ama.js.map +1 -0
  223. package/dist/market_adapter/core/strategies/ama_slope_model.d.ts +50 -0
  224. package/dist/market_adapter/core/strategies/ama_slope_model.d.ts.map +1 -0
  225. package/dist/market_adapter/core/strategies/ama_slope_model.js +143 -0
  226. package/dist/market_adapter/core/strategies/ama_slope_model.js.map +1 -0
  227. package/dist/market_adapter/core/strategies/atr/calculator.d.ts +12 -0
  228. package/dist/market_adapter/core/strategies/atr/calculator.d.ts.map +1 -0
  229. package/dist/market_adapter/core/strategies/atr/calculator.js +47 -0
  230. package/dist/market_adapter/core/strategies/atr/calculator.js.map +1 -0
  231. package/dist/market_adapter/core/strategies/collateral_manager.d.ts +32 -0
  232. package/dist/market_adapter/core/strategies/collateral_manager.d.ts.map +1 -0
  233. package/dist/market_adapter/core/strategies/collateral_manager.js +68 -0
  234. package/dist/market_adapter/core/strategies/collateral_manager.js.map +1 -0
  235. package/dist/market_adapter/core/strategies/regime_gate.d.ts +66 -0
  236. package/dist/market_adapter/core/strategies/regime_gate.d.ts.map +1 -0
  237. package/dist/market_adapter/core/strategies/regime_gate.js +189 -0
  238. package/dist/market_adapter/core/strategies/regime_gate.js.map +1 -0
  239. package/dist/market_adapter/index.d.ts +10 -0
  240. package/dist/market_adapter/index.d.ts.map +1 -0
  241. package/dist/market_adapter/index.js +71 -0
  242. package/dist/market_adapter/index.js.map +1 -0
  243. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.d.ts +3 -0
  244. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.d.ts.map +1 -0
  245. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1165 -0
  246. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -0
  247. package/dist/market_adapter/inputs/fetch_lp_data.d.ts +54 -0
  248. package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -0
  249. package/dist/market_adapter/inputs/fetch_lp_data.js +743 -0
  250. package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -0
  251. package/dist/market_adapter/inputs/kibana_source.d.ts +68 -0
  252. package/dist/market_adapter/inputs/kibana_source.d.ts.map +1 -0
  253. package/dist/market_adapter/inputs/kibana_source.js +143 -0
  254. package/dist/market_adapter/inputs/kibana_source.js.map +1 -0
  255. package/dist/market_adapter/interval_utils.d.ts +6 -0
  256. package/dist/market_adapter/interval_utils.d.ts.map +1 -0
  257. package/dist/market_adapter/interval_utils.js +14 -0
  258. package/dist/market_adapter/interval_utils.js.map +1 -0
  259. package/dist/market_adapter/log_format.d.ts +16 -0
  260. package/dist/market_adapter/log_format.d.ts.map +1 -0
  261. package/dist/market_adapter/log_format.js +72 -0
  262. package/dist/market_adapter/log_format.js.map +1 -0
  263. package/dist/market_adapter/lp_chart_core.d.ts +6 -0
  264. package/dist/market_adapter/lp_chart_core.d.ts.map +1 -0
  265. package/dist/market_adapter/lp_chart_core.js +874 -0
  266. package/dist/market_adapter/lp_chart_core.js.map +1 -0
  267. package/dist/market_adapter/lp_chart_runner.d.ts +135 -0
  268. package/dist/market_adapter/lp_chart_runner.d.ts.map +1 -0
  269. package/dist/market_adapter/lp_chart_runner.js +337 -0
  270. package/dist/market_adapter/lp_chart_runner.js.map +1 -0
  271. package/dist/market_adapter/lp_chart_strategy_loader.d.ts +23 -0
  272. package/dist/market_adapter/lp_chart_strategy_loader.d.ts.map +1 -0
  273. package/dist/market_adapter/lp_chart_strategy_loader.js +169 -0
  274. package/dist/market_adapter/lp_chart_strategy_loader.js.map +1 -0
  275. package/dist/market_adapter/market_adapter.d.ts +133 -0
  276. package/dist/market_adapter/market_adapter.d.ts.map +1 -0
  277. package/dist/market_adapter/market_adapter.js +1331 -0
  278. package/dist/market_adapter/market_adapter.js.map +1 -0
  279. package/dist/market_adapter/merge_lp_data.d.ts +3 -0
  280. package/dist/market_adapter/merge_lp_data.d.ts.map +1 -0
  281. package/dist/market_adapter/merge_lp_data.js +125 -0
  282. package/dist/market_adapter/merge_lp_data.js.map +1 -0
  283. package/dist/market_adapter/test_helpers.d.ts +14 -0
  284. package/dist/market_adapter/test_helpers.d.ts.map +1 -0
  285. package/dist/market_adapter/test_helpers.js +22 -0
  286. package/dist/market_adapter/test_helpers.js.map +1 -0
  287. package/dist/market_adapter/utils/adapter_client.d.ts +20 -0
  288. package/dist/market_adapter/utils/adapter_client.d.ts.map +1 -0
  289. package/dist/market_adapter/utils/adapter_client.js +88 -0
  290. package/dist/market_adapter/utils/adapter_client.js.map +1 -0
  291. package/dist/market_adapter/utils/atomic_write.d.ts +9 -0
  292. package/dist/market_adapter/utils/atomic_write.d.ts.map +1 -0
  293. package/dist/market_adapter/utils/atomic_write.js +13 -0
  294. package/dist/market_adapter/utils/atomic_write.js.map +1 -0
  295. package/dist/market_adapter/utils/chain.d.ts +50 -0
  296. package/dist/market_adapter/utils/chain.d.ts.map +1 -0
  297. package/dist/market_adapter/utils/chain.js +196 -0
  298. package/dist/market_adapter/utils/chain.js.map +1 -0
  299. package/dist/market_adapter/utils/data_discovery.d.ts +6 -0
  300. package/dist/market_adapter/utils/data_discovery.d.ts.map +1 -0
  301. package/dist/market_adapter/utils/data_discovery.js +35 -0
  302. package/dist/market_adapter/utils/data_discovery.js.map +1 -0
  303. package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts +15 -0
  304. package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts.map +1 -0
  305. package/dist/market_adapter/utils/dynamic_grid_snapshot.js +60 -0
  306. package/dist/market_adapter/utils/dynamic_grid_snapshot.js.map +1 -0
  307. package/dist/market_adapter/utils/file_lock.d.ts +19 -0
  308. package/dist/market_adapter/utils/file_lock.d.ts.map +1 -0
  309. package/dist/market_adapter/utils/file_lock.js +191 -0
  310. package/dist/market_adapter/utils/file_lock.js.map +1 -0
  311. package/dist/market_adapter/utils/native_history.d.ts +19 -0
  312. package/dist/market_adapter/utils/native_history.d.ts.map +1 -0
  313. package/dist/market_adapter/utils/native_history.js +172 -0
  314. package/dist/market_adapter/utils/native_history.js.map +1 -0
  315. package/dist/market_adapter/utils/paths.d.ts +5 -0
  316. package/dist/market_adapter/utils/paths.d.ts.map +1 -0
  317. package/dist/market_adapter/utils/paths.js +7 -0
  318. package/dist/market_adapter/utils/paths.js.map +1 -0
  319. package/dist/modules/account_bots.d.ts +112 -0
  320. package/dist/modules/account_bots.d.ts.map +1 -0
  321. package/dist/modules/account_bots.js +1259 -0
  322. package/dist/modules/account_bots.js.map +1 -0
  323. package/dist/modules/account_orders.d.ts +273 -0
  324. package/dist/modules/account_orders.d.ts.map +1 -0
  325. package/dist/modules/account_orders.js +662 -0
  326. package/dist/modules/account_orders.js.map +1 -0
  327. package/dist/modules/authority_resolver.d.ts +2 -0
  328. package/dist/modules/authority_resolver.d.ts.map +1 -0
  329. package/dist/modules/authority_resolver.js +231 -0
  330. package/dist/modules/authority_resolver.js.map +1 -0
  331. package/dist/modules/bitshares-native/chain_client.d.ts +38 -0
  332. package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -0
  333. package/dist/modules/bitshares-native/chain_client.js +322 -0
  334. package/dist/modules/bitshares-native/chain_client.js.map +1 -0
  335. package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts +59 -0
  336. package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts.map +1 -0
  337. package/dist/modules/bitshares-native/crypto/ecc.browser.js +456 -0
  338. package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -0
  339. package/dist/modules/bitshares-native/crypto/ecc.d.ts +66 -0
  340. package/dist/modules/bitshares-native/crypto/ecc.d.ts.map +1 -0
  341. package/dist/modules/bitshares-native/crypto/ecc.js +557 -0
  342. package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -0
  343. package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts +2 -0
  344. package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts.map +1 -0
  345. package/dist/modules/bitshares-native/crypto/ecc_selector.js +20 -0
  346. package/dist/modules/bitshares-native/crypto/ecc_selector.js.map +1 -0
  347. package/dist/modules/bitshares-native/index.d.ts +3 -0
  348. package/dist/modules/bitshares-native/index.d.ts.map +1 -0
  349. package/dist/modules/bitshares-native/index.js +32 -0
  350. package/dist/modules/bitshares-native/index.js.map +1 -0
  351. package/dist/modules/bitshares-native/resolvers.d.ts +40 -0
  352. package/dist/modules/bitshares-native/resolvers.d.ts.map +1 -0
  353. package/dist/modules/bitshares-native/resolvers.js +161 -0
  354. package/dist/modules/bitshares-native/resolvers.js.map +1 -0
  355. package/dist/modules/bitshares-native/serial/chain_constants.d.ts +56 -0
  356. package/dist/modules/bitshares-native/serial/chain_constants.d.ts.map +1 -0
  357. package/dist/modules/bitshares-native/serial/chain_constants.js +92 -0
  358. package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -0
  359. package/dist/modules/bitshares-native/serial/index.d.ts +10 -0
  360. package/dist/modules/bitshares-native/serial/index.d.ts.map +1 -0
  361. package/dist/modules/bitshares-native/serial/index.js +14 -0
  362. package/dist/modules/bitshares-native/serial/index.js.map +1 -0
  363. package/dist/modules/bitshares-native/serial/operations.d.ts +102 -0
  364. package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -0
  365. package/dist/modules/bitshares-native/serial/operations.js +615 -0
  366. package/dist/modules/bitshares-native/serial/operations.js.map +1 -0
  367. package/dist/modules/bitshares-native/serial/serializer.d.ts +64 -0
  368. package/dist/modules/bitshares-native/serial/serializer.d.ts.map +1 -0
  369. package/dist/modules/bitshares-native/serial/serializer.js +252 -0
  370. package/dist/modules/bitshares-native/serial/serializer.js.map +1 -0
  371. package/dist/modules/bitshares-native/serial/types.d.ts +120 -0
  372. package/dist/modules/bitshares-native/serial/types.d.ts.map +1 -0
  373. package/dist/modules/bitshares-native/serial/types.js +837 -0
  374. package/dist/modules/bitshares-native/serial/types.js.map +1 -0
  375. package/dist/modules/bitshares-native/signing_client.d.ts +6 -0
  376. package/dist/modules/bitshares-native/signing_client.d.ts.map +1 -0
  377. package/dist/modules/bitshares-native/signing_client.js +141 -0
  378. package/dist/modules/bitshares-native/signing_client.js.map +1 -0
  379. package/dist/modules/bitshares-native/subscriptions.d.ts +6 -0
  380. package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -0
  381. package/dist/modules/bitshares-native/subscriptions.js +865 -0
  382. package/dist/modules/bitshares-native/subscriptions.js.map +1 -0
  383. package/dist/modules/bitshares-native/transport.d.ts +51 -0
  384. package/dist/modules/bitshares-native/transport.d.ts.map +1 -0
  385. package/dist/modules/bitshares-native/transport.js +447 -0
  386. package/dist/modules/bitshares-native/transport.js.map +1 -0
  387. package/dist/modules/bitshares-native/tx/builder.d.ts +30 -0
  388. package/dist/modules/bitshares-native/tx/builder.d.ts.map +1 -0
  389. package/dist/modules/bitshares-native/tx/builder.js +262 -0
  390. package/dist/modules/bitshares-native/tx/builder.js.map +1 -0
  391. package/dist/modules/bitshares_client.d.ts +129 -0
  392. package/dist/modules/bitshares_client.d.ts.map +1 -0
  393. package/dist/modules/bitshares_client.js +627 -0
  394. package/dist/modules/bitshares_client.js.map +1 -0
  395. package/dist/modules/bot_settings.d.ts +33 -0
  396. package/dist/modules/bot_settings.d.ts.map +1 -0
  397. package/dist/modules/bot_settings.js +328 -0
  398. package/dist/modules/bot_settings.js.map +1 -0
  399. package/dist/modules/bots_file_lock.d.ts +88 -0
  400. package/dist/modules/bots_file_lock.d.ts.map +1 -0
  401. package/dist/modules/bots_file_lock.js +161 -0
  402. package/dist/modules/bots_file_lock.js.map +1 -0
  403. package/dist/modules/chain_keys.d.ts +302 -0
  404. package/dist/modules/chain_keys.d.ts.map +1 -0
  405. package/dist/modules/chain_keys.js +1095 -0
  406. package/dist/modules/chain_keys.js.map +1 -0
  407. package/dist/modules/chain_orders.d.ts +423 -0
  408. package/dist/modules/chain_orders.d.ts.map +1 -0
  409. package/dist/modules/chain_orders.js +1201 -0
  410. package/dist/modules/chain_orders.js.map +1 -0
  411. package/dist/modules/cli_whitelist_args.d.ts +6 -0
  412. package/dist/modules/cli_whitelist_args.d.ts.map +1 -0
  413. package/dist/modules/cli_whitelist_args.js +13 -0
  414. package/dist/modules/cli_whitelist_args.js.map +1 -0
  415. package/dist/modules/config.d.ts +57 -0
  416. package/dist/modules/config.d.ts.map +1 -0
  417. package/dist/modules/config.js +107 -0
  418. package/dist/modules/config.js.map +1 -0
  419. package/dist/modules/constants.d.ts +635 -0
  420. package/dist/modules/constants.d.ts.map +1 -0
  421. package/dist/modules/constants.js +1464 -0
  422. package/dist/modules/constants.js.map +1 -0
  423. package/dist/modules/cr_planner.d.ts +51 -0
  424. package/dist/modules/cr_planner.d.ts.map +1 -0
  425. package/dist/modules/cr_planner.js +299 -0
  426. package/dist/modules/cr_planner.js.map +1 -0
  427. package/dist/modules/credential_policy.d.ts +188 -0
  428. package/dist/modules/credential_policy.d.ts.map +1 -0
  429. package/dist/modules/credential_policy.js +1452 -0
  430. package/dist/modules/credential_policy.js.map +1 -0
  431. package/dist/modules/credential_runtime.d.ts +42 -0
  432. package/dist/modules/credential_runtime.d.ts.map +1 -0
  433. package/dist/modules/credential_runtime.js +148 -0
  434. package/dist/modules/credential_runtime.js.map +1 -0
  435. package/dist/modules/credential_session_cache.d.ts +36 -0
  436. package/dist/modules/credential_session_cache.d.ts.map +1 -0
  437. package/dist/modules/credential_session_cache.js +106 -0
  438. package/dist/modules/credential_session_cache.js.map +1 -0
  439. package/dist/modules/credit_runtime.d.ts +412 -0
  440. package/dist/modules/credit_runtime.d.ts.map +1 -0
  441. package/dist/modules/credit_runtime.js +2866 -0
  442. package/dist/modules/credit_runtime.js.map +1 -0
  443. package/dist/modules/crypto/browser_provider.d.ts +15 -0
  444. package/dist/modules/crypto/browser_provider.d.ts.map +1 -0
  445. package/dist/modules/crypto/browser_provider.js +113 -0
  446. package/dist/modules/crypto/browser_provider.js.map +1 -0
  447. package/dist/modules/crypto/index.d.ts +9 -0
  448. package/dist/modules/crypto/index.d.ts.map +1 -0
  449. package/dist/modules/crypto/index.js +44 -0
  450. package/dist/modules/crypto/index.js.map +1 -0
  451. package/dist/modules/crypto/node_provider.d.ts +15 -0
  452. package/dist/modules/crypto/node_provider.d.ts.map +1 -0
  453. package/dist/modules/crypto/node_provider.js +74 -0
  454. package/dist/modules/crypto/node_provider.js.map +1 -0
  455. package/dist/modules/crypto/provider.d.ts +34 -0
  456. package/dist/modules/crypto/provider.d.ts.map +1 -0
  457. package/dist/modules/crypto/provider.js +3 -0
  458. package/dist/modules/crypto/provider.js.map +1 -0
  459. package/dist/modules/crypto/pure_ripemd160.d.ts +8 -0
  460. package/dist/modules/crypto/pure_ripemd160.d.ts.map +1 -0
  461. package/dist/modules/crypto/pure_ripemd160.js +142 -0
  462. package/dist/modules/crypto/pure_ripemd160.js.map +1 -0
  463. package/dist/modules/crypto/pure_scrypt.d.ts +23 -0
  464. package/dist/modules/crypto/pure_scrypt.d.ts.map +1 -0
  465. package/dist/modules/crypto/pure_scrypt.js +161 -0
  466. package/dist/modules/crypto/pure_scrypt.js.map +1 -0
  467. package/dist/modules/crypto/pure_secp256k1.d.ts +29 -0
  468. package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -0
  469. package/dist/modules/crypto/pure_secp256k1.js +195 -0
  470. package/dist/modules/crypto/pure_secp256k1.js.map +1 -0
  471. package/dist/modules/crypto/sync.d.ts +13 -0
  472. package/dist/modules/crypto/sync.d.ts.map +1 -0
  473. package/dist/modules/crypto/sync.js +37 -0
  474. package/dist/modules/crypto/sync.js.map +1 -0
  475. package/dist/modules/dexbot_class.d.ts +1074 -0
  476. package/dist/modules/dexbot_class.d.ts.map +1 -0
  477. package/dist/modules/dexbot_class.js +4613 -0
  478. package/dist/modules/dexbot_class.js.map +1 -0
  479. package/dist/modules/dexbot_credential_client.d.ts +71 -0
  480. package/dist/modules/dexbot_credential_client.d.ts.map +1 -0
  481. package/dist/modules/dexbot_credential_client.js +224 -0
  482. package/dist/modules/dexbot_credential_client.js.map +1 -0
  483. package/dist/modules/dexbot_fill_runtime.d.ts +173 -0
  484. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -0
  485. package/dist/modules/dexbot_fill_runtime.js +217 -0
  486. package/dist/modules/dexbot_fill_runtime.js.map +1 -0
  487. package/dist/modules/dexbot_maintenance_runtime.d.ts +279 -0
  488. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -0
  489. package/dist/modules/dexbot_maintenance_runtime.js +1613 -0
  490. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -0
  491. package/dist/modules/env.d.ts +12 -0
  492. package/dist/modules/env.d.ts.map +1 -0
  493. package/dist/modules/env.js +57 -0
  494. package/dist/modules/env.js.map +1 -0
  495. package/dist/modules/fund_registry.d.ts +96 -0
  496. package/dist/modules/fund_registry.d.ts.map +1 -0
  497. package/dist/modules/fund_registry.js +261 -0
  498. package/dist/modules/fund_registry.js.map +1 -0
  499. package/dist/modules/general_settings.d.ts +36 -0
  500. package/dist/modules/general_settings.d.ts.map +1 -0
  501. package/dist/modules/general_settings.js +63 -0
  502. package/dist/modules/general_settings.js.map +1 -0
  503. package/dist/modules/graceful_shutdown.d.ts +86 -0
  504. package/dist/modules/graceful_shutdown.d.ts.map +1 -0
  505. package/dist/modules/graceful_shutdown.js +164 -0
  506. package/dist/modules/graceful_shutdown.js.map +1 -0
  507. package/dist/modules/key_store.d.ts +60 -0
  508. package/dist/modules/key_store.d.ts.map +1 -0
  509. package/dist/modules/key_store.js +215 -0
  510. package/dist/modules/key_store.js.map +1 -0
  511. package/dist/modules/launcher/bot_supervisor.d.ts +84 -0
  512. package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -0
  513. package/dist/modules/launcher/bot_supervisor.js +1067 -0
  514. package/dist/modules/launcher/bot_supervisor.js.map +1 -0
  515. package/dist/modules/launcher/child_env.d.ts +9 -0
  516. package/dist/modules/launcher/child_env.d.ts.map +1 -0
  517. package/dist/modules/launcher/child_env.js +78 -0
  518. package/dist/modules/launcher/child_env.js.map +1 -0
  519. package/dist/modules/launcher/credential_bootstrap.d.ts +22 -0
  520. package/dist/modules/launcher/credential_bootstrap.d.ts.map +1 -0
  521. package/dist/modules/launcher/credential_bootstrap.js +303 -0
  522. package/dist/modules/launcher/credential_bootstrap.js.map +1 -0
  523. package/dist/modules/launcher/credential_daemon.d.ts +32 -0
  524. package/dist/modules/launcher/credential_daemon.d.ts.map +1 -0
  525. package/dist/modules/launcher/credential_daemon.js +173 -0
  526. package/dist/modules/launcher/credential_daemon.js.map +1 -0
  527. package/dist/modules/launcher/credential_secret.d.ts +6 -0
  528. package/dist/modules/launcher/credential_secret.d.ts.map +1 -0
  529. package/dist/modules/launcher/credential_secret.js +15 -0
  530. package/dist/modules/launcher/credential_secret.js.map +1 -0
  531. package/dist/modules/launcher/foreign_cred_daemon.d.ts +2 -0
  532. package/dist/modules/launcher/foreign_cred_daemon.d.ts.map +1 -0
  533. package/dist/modules/launcher/foreign_cred_daemon.js +166 -0
  534. package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -0
  535. package/dist/modules/launcher/headless_password.d.ts +8 -0
  536. package/dist/modules/launcher/headless_password.d.ts.map +1 -0
  537. package/dist/modules/launcher/headless_password.js +33 -0
  538. package/dist/modules/launcher/headless_password.js.map +1 -0
  539. package/dist/modules/launcher/launch_modes.d.ts +36 -0
  540. package/dist/modules/launcher/launch_modes.d.ts.map +1 -0
  541. package/dist/modules/launcher/launch_modes.js +129 -0
  542. package/dist/modules/launcher/launch_modes.js.map +1 -0
  543. package/dist/modules/launcher/market_adapter_runtime.d.ts +43 -0
  544. package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -0
  545. package/dist/modules/launcher/market_adapter_runtime.js +217 -0
  546. package/dist/modules/launcher/market_adapter_runtime.js.map +1 -0
  547. package/dist/modules/launcher/market_adapter_watchdog.d.ts +26 -0
  548. package/dist/modules/launcher/market_adapter_watchdog.d.ts.map +1 -0
  549. package/dist/modules/launcher/market_adapter_watchdog.js +214 -0
  550. package/dist/modules/launcher/market_adapter_watchdog.js.map +1 -0
  551. package/dist/modules/launcher/monolithic_runtime.d.ts +89 -0
  552. package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -0
  553. package/dist/modules/launcher/monolithic_runtime.js +425 -0
  554. package/dist/modules/launcher/monolithic_runtime.js.map +1 -0
  555. package/dist/modules/launcher/runtime_entry.d.ts +26 -0
  556. package/dist/modules/launcher/runtime_entry.d.ts.map +1 -0
  557. package/dist/modules/launcher/runtime_entry.js +49 -0
  558. package/dist/modules/launcher/runtime_entry.js.map +1 -0
  559. package/dist/modules/launcher/status_reporting.d.ts +48 -0
  560. package/dist/modules/launcher/status_reporting.d.ts.map +1 -0
  561. package/dist/modules/launcher/status_reporting.js +113 -0
  562. package/dist/modules/launcher/status_reporting.js.map +1 -0
  563. package/dist/modules/launcher/supervisor_control.d.ts +6 -0
  564. package/dist/modules/launcher/supervisor_control.d.ts.map +1 -0
  565. package/dist/modules/launcher/supervisor_control.js +59 -0
  566. package/dist/modules/launcher/supervisor_control.js.map +1 -0
  567. package/dist/modules/logger.d.ts +2 -0
  568. package/dist/modules/logger.d.ts.map +1 -0
  569. package/dist/modules/logger.js +71 -0
  570. package/dist/modules/logger.js.map +1 -0
  571. package/dist/modules/market_adapter_whitelist.d.ts +22 -0
  572. package/dist/modules/market_adapter_whitelist.d.ts.map +1 -0
  573. package/dist/modules/market_adapter_whitelist.js +82 -0
  574. package/dist/modules/market_adapter_whitelist.js.map +1 -0
  575. package/dist/modules/node_health_cache.d.ts +55 -0
  576. package/dist/modules/node_health_cache.d.ts.map +1 -0
  577. package/dist/modules/node_health_cache.js +134 -0
  578. package/dist/modules/node_health_cache.js.map +1 -0
  579. package/dist/modules/node_manager.d.ts +215 -0
  580. package/dist/modules/node_manager.d.ts.map +1 -0
  581. package/dist/modules/node_manager.js +628 -0
  582. package/dist/modules/node_manager.js.map +1 -0
  583. package/dist/modules/order/accounting.d.ts +349 -0
  584. package/dist/modules/order/accounting.d.ts.map +1 -0
  585. package/dist/modules/order/accounting.js +1191 -0
  586. package/dist/modules/order/accounting.js.map +1 -0
  587. package/dist/modules/order/async_lock.d.ts +126 -0
  588. package/dist/modules/order/async_lock.d.ts.map +1 -0
  589. package/dist/modules/order/async_lock.js +195 -0
  590. package/dist/modules/order/async_lock.js.map +1 -0
  591. package/dist/modules/order/export.d.ts +129 -0
  592. package/dist/modules/order/export.d.ts.map +1 -0
  593. package/dist/modules/order/export.js +316 -0
  594. package/dist/modules/order/export.js.map +1 -0
  595. package/dist/modules/order/format.d.ts +158 -0
  596. package/dist/modules/order/format.d.ts.map +1 -0
  597. package/dist/modules/order/format.js +232 -0
  598. package/dist/modules/order/format.js.map +1 -0
  599. package/dist/modules/order/grid.d.ts +549 -0
  600. package/dist/modules/order/grid.d.ts.map +1 -0
  601. package/dist/modules/order/grid.js +1746 -0
  602. package/dist/modules/order/grid.js.map +1 -0
  603. package/dist/modules/order/grid_reconcile.d.ts +154 -0
  604. package/dist/modules/order/grid_reconcile.d.ts.map +1 -0
  605. package/dist/modules/order/grid_reconcile.js +1192 -0
  606. package/dist/modules/order/grid_reconcile.js.map +1 -0
  607. package/dist/modules/order/index.d.ts +55 -0
  608. package/dist/modules/order/index.d.ts.map +1 -0
  609. package/dist/modules/order/index.js +79 -0
  610. package/dist/modules/order/index.js.map +1 -0
  611. package/dist/modules/order/logger.d.ts +136 -0
  612. package/dist/modules/order/logger.d.ts.map +1 -0
  613. package/dist/modules/order/logger.js +614 -0
  614. package/dist/modules/order/logger.js.map +1 -0
  615. package/dist/modules/order/logger_state.d.ts +133 -0
  616. package/dist/modules/order/logger_state.d.ts.map +1 -0
  617. package/dist/modules/order/logger_state.js +170 -0
  618. package/dist/modules/order/logger_state.js.map +1 -0
  619. package/dist/modules/order/manager.d.ts +413 -0
  620. package/dist/modules/order/manager.d.ts.map +1 -0
  621. package/dist/modules/order/manager.js +1605 -0
  622. package/dist/modules/order/manager.js.map +1 -0
  623. package/dist/modules/order/processed_fill_store.d.ts +135 -0
  624. package/dist/modules/order/processed_fill_store.d.ts.map +1 -0
  625. package/dist/modules/order/processed_fill_store.js +288 -0
  626. package/dist/modules/order/processed_fill_store.js.map +1 -0
  627. package/dist/modules/order/runner.d.ts +70 -0
  628. package/dist/modules/order/runner.d.ts.map +1 -0
  629. package/dist/modules/order/runner.js +140 -0
  630. package/dist/modules/order/runner.js.map +1 -0
  631. package/dist/modules/order/strategy.d.ts +196 -0
  632. package/dist/modules/order/strategy.d.ts.map +1 -0
  633. package/dist/modules/order/strategy.js +398 -0
  634. package/dist/modules/order/strategy.js.map +1 -0
  635. package/dist/modules/order/sync_engine.d.ts +386 -0
  636. package/dist/modules/order/sync_engine.d.ts.map +1 -0
  637. package/dist/modules/order/sync_engine.js +1459 -0
  638. package/dist/modules/order/sync_engine.js.map +1 -0
  639. package/dist/modules/order/utils/math.d.ts +677 -0
  640. package/dist/modules/order/utils/math.d.ts.map +1 -0
  641. package/dist/modules/order/utils/math.js +1172 -0
  642. package/dist/modules/order/utils/math.js.map +1 -0
  643. package/dist/modules/order/utils/order.d.ts +572 -0
  644. package/dist/modules/order/utils/order.d.ts.map +1 -0
  645. package/dist/modules/order/utils/order.js +1145 -0
  646. package/dist/modules/order/utils/order.js.map +1 -0
  647. package/dist/modules/order/utils/system.d.ts +268 -0
  648. package/dist/modules/order/utils/system.d.ts.map +1 -0
  649. package/dist/modules/order/utils/system.js +1261 -0
  650. package/dist/modules/order/utils/system.js.map +1 -0
  651. package/dist/modules/order/utils/validate.d.ts +280 -0
  652. package/dist/modules/order/utils/validate.d.ts.map +1 -0
  653. package/dist/modules/order/utils/validate.js +918 -0
  654. package/dist/modules/order/utils/validate.js.map +1 -0
  655. package/dist/modules/order/working_grid.d.ts +212 -0
  656. package/dist/modules/order/working_grid.d.ts.map +1 -0
  657. package/dist/modules/order/working_grid.js +279 -0
  658. package/dist/modules/order/working_grid.js.map +1 -0
  659. package/dist/modules/path_api.d.ts +32 -0
  660. package/dist/modules/path_api.d.ts.map +1 -0
  661. package/dist/modules/path_api.js +148 -0
  662. package/dist/modules/path_api.js.map +1 -0
  663. package/dist/modules/paths.d.ts +58 -0
  664. package/dist/modules/paths.d.ts.map +1 -0
  665. package/dist/modules/paths.js +82 -0
  666. package/dist/modules/paths.js.map +1 -0
  667. package/dist/modules/process_discovery.d.ts +58 -0
  668. package/dist/modules/process_discovery.d.ts.map +1 -0
  669. package/dist/modules/process_discovery.js +265 -0
  670. package/dist/modules/process_discovery.js.map +1 -0
  671. package/dist/modules/runtime.d.ts +34 -0
  672. package/dist/modules/runtime.d.ts.map +1 -0
  673. package/dist/modules/runtime.js +98 -0
  674. package/dist/modules/runtime.js.map +1 -0
  675. package/dist/modules/runtime_settings.d.ts +12 -0
  676. package/dist/modules/runtime_settings.d.ts.map +1 -0
  677. package/dist/modules/runtime_settings.js +122 -0
  678. package/dist/modules/runtime_settings.js.map +1 -0
  679. package/dist/modules/settings_merge.d.ts +38 -0
  680. package/dist/modules/settings_merge.d.ts.map +1 -0
  681. package/dist/modules/settings_merge.js +246 -0
  682. package/dist/modules/settings_merge.js.map +1 -0
  683. package/dist/modules/storage/browser_adapter.d.ts +56 -0
  684. package/dist/modules/storage/browser_adapter.d.ts.map +1 -0
  685. package/dist/modules/storage/browser_adapter.js +231 -0
  686. package/dist/modules/storage/browser_adapter.js.map +1 -0
  687. package/dist/modules/storage/index.d.ts +28 -0
  688. package/dist/modules/storage/index.d.ts.map +1 -0
  689. package/dist/modules/storage/index.js +52 -0
  690. package/dist/modules/storage/index.js.map +1 -0
  691. package/dist/modules/storage/node_adapter.d.ts +49 -0
  692. package/dist/modules/storage/node_adapter.d.ts.map +1 -0
  693. package/dist/modules/storage/node_adapter.js +167 -0
  694. package/dist/modules/storage/node_adapter.js.map +1 -0
  695. package/dist/modules/storage/types.d.ts +92 -0
  696. package/dist/modules/storage/types.d.ts.map +1 -0
  697. package/dist/modules/storage/types.js +3 -0
  698. package/dist/modules/storage/types.js.map +1 -0
  699. package/dist/modules/types.d.ts +1382 -0
  700. package/dist/modules/types.d.ts.map +1 -0
  701. package/dist/modules/types.js +11 -0
  702. package/dist/modules/types.js.map +1 -0
  703. package/dist/modules/utils/base58check.d.ts +12 -0
  704. package/dist/modules/utils/base58check.d.ts.map +1 -0
  705. package/dist/modules/utils/base58check.js +112 -0
  706. package/dist/modules/utils/base58check.js.map +1 -0
  707. package/dist/modules/utils/build_dir.d.ts +7 -0
  708. package/dist/modules/utils/build_dir.d.ts.map +1 -0
  709. package/dist/modules/utils/build_dir.js +8 -0
  710. package/dist/modules/utils/build_dir.js.map +1 -0
  711. package/dist/modules/utils/fs_utils.d.ts +25 -0
  712. package/dist/modules/utils/fs_utils.d.ts.map +1 -0
  713. package/dist/modules/utils/fs_utils.js +27 -0
  714. package/dist/modules/utils/fs_utils.js.map +1 -0
  715. package/dist/modules/utils/math_utils.d.ts +10 -0
  716. package/dist/modules/utils/math_utils.d.ts.map +1 -0
  717. package/dist/modules/utils/math_utils.js +17 -0
  718. package/dist/modules/utils/math_utils.js.map +1 -0
  719. package/dist/modules/validate_profiles.d.ts +37 -0
  720. package/dist/modules/validate_profiles.d.ts.map +1 -0
  721. package/dist/modules/validate_profiles.js +369 -0
  722. package/dist/modules/validate_profiles.js.map +1 -0
  723. package/dist/pm2.d.ts +167 -0
  724. package/dist/pm2.d.ts.map +1 -0
  725. package/dist/pm2.js +998 -0
  726. package/dist/pm2.js.map +1 -0
  727. package/dist/scripts/analyze-git.d.ts +11 -0
  728. package/dist/scripts/analyze-git.d.ts.map +1 -0
  729. package/dist/scripts/analyze-git.js +851 -0
  730. package/dist/scripts/analyze-git.js.map +1 -0
  731. package/dist/scripts/analyze-orders.d.ts +17 -0
  732. package/dist/scripts/analyze-orders.d.ts.map +1 -0
  733. package/dist/scripts/analyze-orders.js +1568 -0
  734. package/dist/scripts/analyze-orders.js.map +1 -0
  735. package/dist/scripts/diagnose-kibana-candles.d.ts +3 -0
  736. package/dist/scripts/diagnose-kibana-candles.d.ts.map +1 -0
  737. package/dist/scripts/diagnose-kibana-candles.js +82 -0
  738. package/dist/scripts/diagnose-kibana-candles.js.map +1 -0
  739. package/dist/scripts/diagnose-pool-history.d.ts +3 -0
  740. package/dist/scripts/diagnose-pool-history.d.ts.map +1 -0
  741. package/dist/scripts/diagnose-pool-history.js +296 -0
  742. package/dist/scripts/diagnose-pool-history.js.map +1 -0
  743. package/dist/scripts/divergence-calc.d.ts +26 -0
  744. package/dist/scripts/divergence-calc.d.ts.map +1 -0
  745. package/dist/scripts/divergence-calc.js +119 -0
  746. package/dist/scripts/divergence-calc.js.map +1 -0
  747. package/dist/scripts/generate_lp_chart.d.ts +31 -0
  748. package/dist/scripts/generate_lp_chart.d.ts.map +1 -0
  749. package/dist/scripts/generate_lp_chart.js +92 -0
  750. package/dist/scripts/generate_lp_chart.js.map +1 -0
  751. package/dist/scripts/generate_mainnet_corpus_report.d.ts +24 -0
  752. package/dist/scripts/generate_mainnet_corpus_report.d.ts.map +1 -0
  753. package/dist/scripts/generate_mainnet_corpus_report.js +237 -0
  754. package/dist/scripts/generate_mainnet_corpus_report.js.map +1 -0
  755. package/dist/scripts/generate_market_adapter_whitelist.d.ts +2 -0
  756. package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -0
  757. package/dist/scripts/generate_market_adapter_whitelist.js +111 -0
  758. package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -0
  759. package/dist/scripts/migrate_bot_keys.d.ts +6 -0
  760. package/dist/scripts/migrate_bot_keys.d.ts.map +1 -0
  761. package/dist/scripts/migrate_bot_keys.js +301 -0
  762. package/dist/scripts/migrate_bot_keys.js.map +1 -0
  763. package/dist/scripts/native_release_gates.d.ts +3 -0
  764. package/dist/scripts/native_release_gates.d.ts.map +1 -0
  765. package/dist/scripts/native_release_gates.js +52 -0
  766. package/dist/scripts/native_release_gates.js.map +1 -0
  767. package/dist/scripts/print_grid.d.ts +16 -0
  768. package/dist/scripts/print_grid.d.ts.map +1 -0
  769. package/dist/scripts/print_grid.js +80 -0
  770. package/dist/scripts/print_grid.js.map +1 -0
  771. package/dist/scripts/run-tests.d.ts +2 -0
  772. package/dist/scripts/run-tests.d.ts.map +1 -0
  773. package/dist/scripts/run-tests.js +49 -0
  774. package/dist/scripts/run-tests.js.map +1 -0
  775. package/dist/scripts/sync-version.d.ts +14 -0
  776. package/dist/scripts/sync-version.d.ts.map +1 -0
  777. package/dist/scripts/sync-version.js +158 -0
  778. package/dist/scripts/sync-version.js.map +1 -0
  779. package/dist/scripts/test-credit-renewal.d.ts +2 -0
  780. package/dist/scripts/test-credit-renewal.d.ts.map +1 -0
  781. package/dist/scripts/test-credit-renewal.js +329 -0
  782. package/dist/scripts/test-credit-renewal.js.map +1 -0
  783. package/dist/scripts/update.d.ts +24 -0
  784. package/dist/scripts/update.d.ts.map +1 -0
  785. package/dist/scripts/update.js +650 -0
  786. package/dist/scripts/update.js.map +1 -0
  787. package/dist/scripts/validate_bots.d.ts +16 -0
  788. package/dist/scripts/validate_bots.d.ts.map +1 -0
  789. package/dist/scripts/validate_bots.js +106 -0
  790. package/dist/scripts/validate_bots.js.map +1 -0
  791. package/dist/scripts/verify-browser-bundle.d.ts +22 -0
  792. package/dist/scripts/verify-browser-bundle.d.ts.map +1 -0
  793. package/dist/scripts/verify-browser-bundle.js +339 -0
  794. package/dist/scripts/verify-browser-bundle.js.map +1 -0
  795. package/dist/unlock.d.ts +48 -0
  796. package/dist/unlock.d.ts.map +1 -0
  797. package/dist/unlock.js +925 -0
  798. package/dist/unlock.js.map +1 -0
  799. package/package.json +112 -0
  800. package/scripts/README.md +356 -0
  801. package/scripts/clear-all.sh +195 -0
  802. package/scripts/clear-logs.sh +95 -0
  803. package/scripts/clear-market-adapter.sh +196 -0
  804. package/scripts/clear-orders.sh +113 -0
  805. package/scripts/create-bot-symlinks.sh +51 -0
  806. package/scripts/postinstall.js +9 -0
  807. package/scripts/reset-settings.sh +118 -0
@@ -0,0 +1,627 @@
1
+ "use strict";
2
+ /**
3
+ * modules/bitshares_client.ts - BitShares Connection Manager
4
+ *
5
+ * Centralized BitShares client connection and account client factory.
6
+ *
7
+ * Features:
8
+ * - Single shared connection for all database queries
9
+ * - Connection state tracking with waitForConnected() helper
10
+ * - Per-account client factory for signing/broadcasting transactions
11
+ * - Subscription and event handling
12
+ *
13
+ * ===============================================================================
14
+ * EXPORTS (16 items)
15
+ * ===============================================================================
16
+ *
17
+ * 1. BitShares - Shared BitShares class for database operations
18
+ * Used for: querying accounts, assets, orders, subscriptions
19
+ * Never use for signing transactions
20
+ *
21
+ * 2. createAccountClient(name, key) - Create per-account client for signing
22
+ * 3. waitForConnected(timeoutMs) - Wait for connection to ready state (async)
23
+ * 4. getConnectionStatus() - Get current connection status
24
+ * 5. disconnectClient() - Disconnect the client
25
+ * 6. reconnectForCycle() - Reconnect for maintenance cycle
26
+ * 7. setSuppressConnectionLog(bool) - Suppress/restore connection log output
27
+ * 8. getNodeManager() - Get the NodeManager instance
28
+ * 9. getNodeStats() - Get node health statistics
29
+ * 10. getNodeSummary() - Get node summary
30
+ * 11. getConnectionError() - Get last connection error
31
+ * 12. onReconnect(callback) - Register reconnect callback
32
+ * 13. removeOnReconnect(callback) - Remove reconnect callback
33
+ * 14. withTimeout(promise, timeoutMs) - Wrap promise with timeout
34
+ * 15. _assessFailover() - Internal failover assessment
35
+ * 16. _internal - Internal state (connected flag) for testing
36
+ * ===============================================================================
37
+ */
38
+ const { TIMING, NODE_MANAGEMENT, NATIVE_CLIENT } = require('./constants');
39
+ const { TRANSPORT } = NATIVE_CLIENT;
40
+ const NodeManager = require('./node_manager');
41
+ const { readGeneralSettings } = require('./general_settings');
42
+ const { sleep } = require('./order/utils/system');
43
+ const Logger = require('./logger');
44
+ const logger = new Logger('bitshares_client');
45
+ let connected = false;
46
+ let suppressConnectionLog = false;
47
+ let lastConnectionError = null;
48
+ let intentionalDisconnect = false;
49
+ let nodeManager = null;
50
+ let nodeConfig = null;
51
+ let nodeManagerEnabled = false;
52
+ let startupNodeRefreshPromise = null;
53
+ let failoverAssessmentPromise = null;
54
+ let reconnectInProgress = false;
55
+ let lastFailoverAssessmentAt = 0;
56
+ const failoverAssessmentCooldownMs = NODE_MANAGEMENT.FAILOVER_ASSESSMENT_COOLDOWN_MS;
57
+ // Reconnection callbacks registered by consumers (e.g. DEXBot)
58
+ const _reconnectCallbacks = new Set();
59
+ /**
60
+ * Register a callback to be called after a successful reconnection.
61
+ * @param {Function} callback - Called with no arguments after subscription re-establishment
62
+ * @returns {Function} Unregister function
63
+ */
64
+ function onReconnect(callback) {
65
+ if (typeof callback !== 'function') {
66
+ logger.warn(`onReconnect requires a function, got ${typeof callback}`);
67
+ return () => { };
68
+ }
69
+ _reconnectCallbacks.add(callback);
70
+ return () => { _reconnectCallbacks.delete(callback); };
71
+ }
72
+ function removeOnReconnect(callback) {
73
+ _reconnectCallbacks.delete(callback);
74
+ }
75
+ async function notifyReconnectCallbacks() {
76
+ if (_reconnectCallbacks.size === 0)
77
+ return;
78
+ for (const cb of [..._reconnectCallbacks]) {
79
+ try {
80
+ await Promise.resolve(cb());
81
+ }
82
+ catch (err) {
83
+ logger.warn(`Reconnect callback error: ${err?.message || err}`);
84
+ }
85
+ }
86
+ }
87
+ // Lazy initialization guard
88
+ let _initialized = false;
89
+ // Native client references (lazily initialized)
90
+ let _nativeClient = null;
91
+ let _subscriptionManager = null;
92
+ let _nativeBitSharesProxy = null;
93
+ let _resolvers = null;
94
+ // Monotonic generation counter for native _nativeClient.connect() calls.
95
+ // The native transport's connect() sweep cannot be cancelled, so a timeout
96
+ // in the outer withTimeout wrapper only stops the *awaiter* — the sweep
97
+ // continues in the background and may resolve later. If the caller has
98
+ // since moved on (e.g. failover to a different node list), a late
99
+ // resolution would leave _nativeClient connected to the stale node set
100
+ // while the caller assumes the connect was abandoned. We tag each
101
+ // connect attempt with the current generation and, on resolution, drop
102
+ // the result and force a disconnect if the generation has moved on.
103
+ let _connectGeneration = 0;
104
+ /**
105
+ * Race a promise against a timeout, with two safety guarantees:
106
+ * 1. The timer is always cleared on settle, so the timeout promise does not
107
+ * hold a ref to the event loop.
108
+ * 2. The inner promise is observed even if the timeout wins the race, so a
109
+ * late rejection cannot become an unhandledRejection (which would tear
110
+ * the process down via graceful_shutdown.ts).
111
+ * @param {Promise<any>} inner The underlying call to bound.
112
+ * @param {number} timeoutMs Max time to wait before rejecting with a timeout error.
113
+ * @param {string} label Short label used in the timeout error message.
114
+ * @returns {Promise<any>}
115
+ */
116
+ function withTimeout(inner, timeoutMs, label) {
117
+ let timer;
118
+ const timeout = new Promise((_, reject) => {
119
+ timer = setTimeout(() => reject(new Error(`${label} timed out after ${timeoutMs}ms`)), timeoutMs);
120
+ });
121
+ // Attach a no-op rejection handler to the inner promise so that a late
122
+ // rejection does not trigger process.on('unhandledRejection'). The race
123
+ // winner's rejection is what the caller observes; the late inner rejection
124
+ // is intentionally swallowed.
125
+ Promise.resolve(inner).catch(() => { });
126
+ return Promise.race([inner, timeout]).finally(() => clearTimeout(timer));
127
+ }
128
+ function ensureInitialized() {
129
+ if (_initialized)
130
+ return;
131
+ _initialized = true;
132
+ const native = require('./bitshares-native');
133
+ const { createSubscriptionManager, createResolvers } = native;
134
+ _nativeClient = native.createChainClient({
135
+ onStatusChange: handleConnectionStatus,
136
+ rpcTimeoutMs: TIMING.CONNECTION_TIMEOUT_MS,
137
+ connectTimeoutMs: TIMING.CONNECTION_TIMEOUT_MS,
138
+ });
139
+ _subscriptionManager = createSubscriptionManager(_nativeClient);
140
+ _nativeClient.onReconnect = async () => {
141
+ await _subscriptionManager.onReconnect();
142
+ await notifyReconnectCallbacks();
143
+ };
144
+ _resolvers = createResolvers(_nativeClient);
145
+ _nativeBitSharesProxy = {
146
+ get connect() {
147
+ return (servers, autoreconnect) => {
148
+ if (Array.isArray(servers))
149
+ _nativeClient.setNodes(servers);
150
+ return _nativeClient.connect();
151
+ };
152
+ },
153
+ get disconnect() { return () => _nativeClient.disconnect(); },
154
+ get node() { return _nativeClient.getNodes(); },
155
+ set node(v) { _nativeClient.setNodes(Array.isArray(v) ? v : []); },
156
+ get autoreconnect() { return true; },
157
+ set autoreconnect(v) { },
158
+ get connectPromise() { return undefined; },
159
+ set connectPromise(v) { },
160
+ get subscribe() {
161
+ return (eventType, callback, accountName) => {
162
+ if (eventType === 'account') {
163
+ return _subscriptionManager.subscribe(accountName, callback);
164
+ }
165
+ if (_nativeClient && _nativeClient.subscribe) {
166
+ return _nativeClient.subscribe(eventType, callback, accountName);
167
+ }
168
+ };
169
+ },
170
+ get unsubscribe() {
171
+ return (eventType, callback, accountName) => {
172
+ if (eventType === 'account') {
173
+ return _subscriptionManager.unsubscribe(accountName, callback);
174
+ }
175
+ if (_nativeClient && _nativeClient.unsubscribe) {
176
+ return _nativeClient.unsubscribe(eventType, callback, accountName);
177
+ }
178
+ };
179
+ },
180
+ get assets() {
181
+ return new Proxy({}, {
182
+ get(_target, prop) {
183
+ if (typeof prop !== 'string')
184
+ return undefined;
185
+ return _resolvers.resolveAsset(prop);
186
+ },
187
+ });
188
+ },
189
+ get accounts() {
190
+ return new Proxy({}, {
191
+ get(_target, prop) {
192
+ if (typeof prop !== 'string')
193
+ return undefined;
194
+ return _resolvers.resolveAccount(prop).then((acc) => acc || null);
195
+ },
196
+ });
197
+ },
198
+ get chain() { return { get coreAsset() { return _nativeClient.getCoreAsset(); } }; },
199
+ get db() {
200
+ // The native transport (modules/bitshares-native/transport.ts:380)
201
+ // already enforces a per-RPC timeout of TRANSPORT.RPC_TIMEOUT_MS
202
+ // (15s) on every call(). An additional wrapper here would only add
203
+ // dead slack past the native rejection and produce misleading
204
+ // error messages. Pass through directly.
205
+ return new Proxy(_nativeClient.db, {
206
+ get(target, prop) {
207
+ if (typeof target[prop] === 'function') {
208
+ return (...args) => target[prop](...args);
209
+ }
210
+ return (...args) => target.call(prop, args);
211
+ },
212
+ });
213
+ },
214
+ get history() {
215
+ return new Proxy(_nativeClient.history, {
216
+ get(target, prop) {
217
+ if (typeof target[prop] === 'function') {
218
+ return (...args) => target[prop](...args);
219
+ }
220
+ return (...args) => target.call(prop, args);
221
+ },
222
+ });
223
+ },
224
+ };
225
+ const settings = readGeneralSettings({
226
+ fallback: null,
227
+ onError: (err) => {
228
+ logger.warn(`Config load failed, continuing with defaults: ${err.message}`);
229
+ },
230
+ });
231
+ const nodeSettings = settings?.NODES;
232
+ const configuredNodes = Array.isArray(nodeSettings?.list)
233
+ ? nodeSettings.list.filter((node) => typeof node === 'string' && node.trim())
234
+ : [];
235
+ nodeManagerEnabled = nodeSettings?.enabled ?? NODE_MANAGEMENT.DEFAULT_ENABLED;
236
+ if (nodeManagerEnabled) {
237
+ nodeConfig = {
238
+ ...nodeSettings,
239
+ enabled: nodeManagerEnabled,
240
+ list: configuredNodes.length > 0 ? configuredNodes : NODE_MANAGEMENT.DEFAULT_NODES,
241
+ };
242
+ nodeManager = new NodeManager(nodeConfig);
243
+ _nativeClient.setNodes(Array.isArray(nodeConfig.list) ? nodeConfig.list.slice() : nodeConfig.list);
244
+ logger.info(`Loaded config for ${nodeConfig.list.length} nodes`);
245
+ }
246
+ }
247
+ // BitShares proxy that auto-initializes on first property access
248
+ const _lazyBitShares = new Proxy({}, {
249
+ get(_target, prop) {
250
+ ensureInitialized();
251
+ return _nativeBitSharesProxy[prop];
252
+ },
253
+ set(_target, prop, value) {
254
+ ensureInitialized();
255
+ _nativeBitSharesProxy[prop] = value;
256
+ return true;
257
+ },
258
+ });
259
+ /**
260
+ * Suppress or restore connection log output.
261
+ * @param {boolean} suppress - Whether to suppress connection logs
262
+ * @returns {void}
263
+ */
264
+ function setSuppressConnectionLog(suppress) {
265
+ suppressConnectionLog = suppress;
266
+ }
267
+ /**
268
+ * Restart the BitShares connection with a new server list.
269
+ * @param {string|string[]} serverList - Node URL or array of node URLs
270
+ * @param {string} [reason='startup'] - Reason for reconnection
271
+ * @returns {Promise<boolean>} True if connection succeeded
272
+ */
273
+ async function restartBitsharesConnection(serverList, reason = 'startup') {
274
+ ensureInitialized();
275
+ if (reconnectInProgress)
276
+ return false;
277
+ const servers = Array.isArray(serverList)
278
+ ? serverList.filter((server) => typeof server === 'string' && server.trim())
279
+ : [];
280
+ if (servers.length === 0)
281
+ return false;
282
+ try {
283
+ reconnectInProgress = true;
284
+ connected = false;
285
+ try {
286
+ _nativeClient.disconnect();
287
+ }
288
+ catch (_) { }
289
+ _nativeClient.setNodes(servers);
290
+ const myGeneration = ++_connectGeneration;
291
+ const connectPromise = _nativeClient.connect();
292
+ try {
293
+ await withTimeout(connectPromise, TRANSPORT.CONNECT_TOTAL_TIMEOUT_MS, 'BitShares connection');
294
+ }
295
+ catch (connectErr) {
296
+ // The native connect() sweep continues in the background even
297
+ // though withTimeout rejected. Tag the sweep with the generation
298
+ // it was started under — its eventual settlement forces a
299
+ // disconnect to keep isConnected() consistent with the caller's
300
+ // timeout. Two cases:
301
+ // - Generation has moved: a NEW connect is in progress. The
302
+ // late success would interfere with it, so force-disconnect.
303
+ // - Generation has NOT moved: no new connect was started. The
304
+ // late success would leave the transport internally connected
305
+ // while the module-level `connected` flag is still false,
306
+ // creating a state mismatch where isConnected() returns false
307
+ // but the transport is actually live. Force-disconnect to
308
+ // keep the state consistent.
309
+ connectPromise
310
+ .then(() => {
311
+ logger.warn(`Late native connect success after timeout ` +
312
+ `(attempt generation=${myGeneration}, current=${_connectGeneration}). ` +
313
+ `Forcing disconnect to keep isConnected() state consistent.`);
314
+ try {
315
+ _nativeClient.disconnect();
316
+ }
317
+ catch (_) { }
318
+ })
319
+ .catch(() => { });
320
+ throw connectErr;
321
+ }
322
+ if (_subscriptionManager) {
323
+ try {
324
+ await _subscriptionManager.onReconnect();
325
+ }
326
+ catch (err) {
327
+ logger.warn(`Subscription re-establishment after reconnect failed: ${err?.message || err}`);
328
+ }
329
+ }
330
+ // Notify registered reconnection callbacks (e.g. DEXBot safety-net sync)
331
+ await notifyReconnectCallbacks();
332
+ if (!suppressConnectionLog) {
333
+ logger.info(`${reason}: reconnect requested across ${servers.length} node(s)`);
334
+ }
335
+ return true;
336
+ }
337
+ catch (err) {
338
+ lastConnectionError = err;
339
+ try {
340
+ _nativeClient.disconnect();
341
+ }
342
+ catch (_) { }
343
+ if (!suppressConnectionLog) {
344
+ logger.warn(`${reason}: reconnect request failed: ${err.message || err}`);
345
+ }
346
+ return false;
347
+ }
348
+ finally {
349
+ reconnectInProgress = false;
350
+ }
351
+ }
352
+ /**
353
+ * Assess failover: check node health and reconnect to a healthy node if current one is down.
354
+ * @param {string} [reason='status change'] - Reason for failover assessment
355
+ * @returns {Promise<boolean>} True if failover reconnect succeeded
356
+ * @private
357
+ */
358
+ async function assessFailover(reason = 'status change') {
359
+ ensureInitialized();
360
+ if (!nodeManager || nodeConfig?.healthCheck?.enabled === false)
361
+ return false;
362
+ if (reconnectInProgress)
363
+ return false;
364
+ if (failoverAssessmentPromise)
365
+ return failoverAssessmentPromise;
366
+ // Cooldown: a single close can fan into multiple assessFailover calls
367
+ // (probe socket close + live transport close). Skip the second one for a
368
+ // short window so we only ever do one probe+restart per real disconnect.
369
+ const now = Date.now();
370
+ if (now - lastFailoverAssessmentAt < failoverAssessmentCooldownMs)
371
+ return false;
372
+ lastFailoverAssessmentAt = now;
373
+ failoverAssessmentPromise = (async () => {
374
+ logger.warn(`${reason}, triggering failover assessment`);
375
+ try {
376
+ const activeNode = _nativeClient?.transport?.getNodeUrl?.();
377
+ await nodeManager.checkAllNodes();
378
+ const healthyNodes = nodeManager.getHealthyNodes();
379
+ const availableHealthyNodes = activeNode
380
+ ? healthyNodes.filter((node) => node !== activeNode)
381
+ : healthyNodes;
382
+ const fallbackNodes = getConfiguredOrDefaultNodes();
383
+ const availableFallbackNodes = activeNode
384
+ ? fallbackNodes.filter((node) => node !== activeNode)
385
+ : fallbackNodes;
386
+ const nextNodes = availableHealthyNodes.length > 0
387
+ ? availableHealthyNodes
388
+ : (healthyNodes.length > 0 ? healthyNodes : (availableFallbackNodes.length > 0 ? availableFallbackNodes : fallbackNodes));
389
+ // Avoid restarting to the same node we are already on. With the
390
+ // transport connect() no-op, a redundant restart is at best a
391
+ // no-op and at worst a forced disconnect cycle.
392
+ if (activeNode && (nextNodes.length === 0 || (nextNodes.length === 1 && nextNodes[0] === activeNode))) {
393
+ logger.info(`${reason}: no better node available, keeping ${activeNode}`);
394
+ return false;
395
+ }
396
+ return restartBitsharesConnection(nextNodes, reason);
397
+ }
398
+ catch (err) {
399
+ logger.warn(`Failover assessment error: ${err.message}`);
400
+ return false;
401
+ }
402
+ })();
403
+ try {
404
+ return await failoverAssessmentPromise;
405
+ }
406
+ finally {
407
+ failoverAssessmentPromise = null;
408
+ }
409
+ }
410
+ /**
411
+ * Get the configured node list, falling back to defaults.
412
+ * @returns {string[]} Array of node URLs
413
+ */
414
+ function getConfiguredOrDefaultNodes() {
415
+ ensureInitialized();
416
+ return Array.isArray(nodeConfig?.list) && nodeConfig.list.length > 0
417
+ ? nodeConfig.list
418
+ : NODE_MANAGEMENT.DEFAULT_NODES;
419
+ }
420
+ /**
421
+ * Handle connection status change events from the native client.
422
+ * @param {string} status - Connection status string ('open', 'connected', 'closed', 'closing', etc.)
423
+ * @returns {boolean} Whether the event was handled
424
+ */
425
+ function handleConnectionStatus(status) {
426
+ const canHandleFailover = nodeManager && nodeConfig?.healthCheck?.enabled !== false;
427
+ if (status === 'open' || status === 'connected') {
428
+ connected = true;
429
+ lastConnectionError = null;
430
+ if (nodeManager && nodeConfig?.healthCheck?.enabled !== false && !nodeManager.monitoringActive) {
431
+ nodeManager.start();
432
+ }
433
+ if (!suppressConnectionLog) {
434
+ logger.info('BitShares connected');
435
+ }
436
+ return false;
437
+ }
438
+ if (status === 'closed' || status === 'closing') {
439
+ connected = false;
440
+ lastConnectionError = null;
441
+ }
442
+ if (status === 'closed' && canHandleFailover && !reconnectInProgress) {
443
+ if (intentionalDisconnect) {
444
+ return true;
445
+ }
446
+ assessFailover('Connection closed').catch((err) => {
447
+ logger.warn(`Failover assessment failed: ${err.message}`);
448
+ });
449
+ return true;
450
+ }
451
+ return false;
452
+ }
453
+ /**
454
+ * Refresh node servers at startup by health-checking all configured nodes.
455
+ * @param {string} [reason='startup'] - Reason for the refresh
456
+ * @returns {Promise<string[]>} Array of selected node URLs
457
+ */
458
+ async function refreshStartupNodeServers(reason = 'startup') {
459
+ ensureInitialized();
460
+ if (!nodeManager || !nodeConfig?.list?.length) {
461
+ return Array.isArray(nodeConfig?.list) ? nodeConfig.list : [];
462
+ }
463
+ if (startupNodeRefreshPromise)
464
+ return startupNodeRefreshPromise;
465
+ startupNodeRefreshPromise = (async () => {
466
+ try {
467
+ if (nodeConfig.healthCheck?.enabled === false) {
468
+ const fallbackNodes = getConfiguredOrDefaultNodes();
469
+ await restartBitsharesConnection(fallbackNodes, `Startup ${reason}`);
470
+ if (!suppressConnectionLog) {
471
+ logger.info(`Startup ${reason}: using ${fallbackNodes.length} configured node(s) without health probing`);
472
+ }
473
+ return fallbackNodes;
474
+ }
475
+ await nodeManager.checkAllNodes();
476
+ const healthyNodes = nodeManager.getHealthyNodes();
477
+ const nextNodes = healthyNodes.length > 0 ? healthyNodes : getConfiguredOrDefaultNodes();
478
+ await restartBitsharesConnection(nextNodes, `Startup ${reason}`);
479
+ if (!suppressConnectionLog) {
480
+ logger.info(`Startup ${reason}: using ${nextNodes.length} node(s)`);
481
+ }
482
+ return nextNodes;
483
+ }
484
+ catch (err) {
485
+ if (!suppressConnectionLog) {
486
+ logger.warn(`Startup ${reason} node refresh failed: ${err.message}`);
487
+ }
488
+ return getConfiguredOrDefaultNodes();
489
+ }
490
+ })();
491
+ try {
492
+ return await startupNodeRefreshPromise;
493
+ }
494
+ finally {
495
+ startupNodeRefreshPromise = null;
496
+ }
497
+ }
498
+ /**
499
+ * Wait for the BitShares connection to become ready.
500
+ * @param {number} [timeoutMs=TIMING.CONNECTION_TIMEOUT_MS] - Max time to wait in ms
501
+ * @param {Object} [options={}] - Wait options
502
+ * @param {number} [options.retryDelayMs] - Initial retry delay in ms
503
+ * @param {number} [options.maxRetryDelayMs] - Maximum retry delay in ms
504
+ * @param {number} [options.refreshNodesEveryMs] - Interval to refresh nodes while waiting
505
+ * @returns {Promise<boolean>} True when connected
506
+ * @throws {Error} If connection times out
507
+ */
508
+ async function waitForConnected(timeoutMs = TIMING.CONNECTION_TIMEOUT_MS, options = {}) {
509
+ ensureInitialized();
510
+ const start = Date.now();
511
+ const initialDelayMs = Number.isFinite(options.retryDelayMs)
512
+ ? Math.max(0, options.retryDelayMs)
513
+ : NODE_MANAGEMENT.STARTUP_RETRY_INITIAL_DELAY_MS;
514
+ const maxDelayMs = Number.isFinite(options.maxRetryDelayMs)
515
+ ? Math.max(initialDelayMs, options.maxRetryDelayMs)
516
+ : NODE_MANAGEMENT.STARTUP_RETRY_MAX_DELAY_MS;
517
+ const refreshNodesEveryMs = Number.isFinite(options.refreshNodesEveryMs)
518
+ ? Math.max(0, options.refreshNodesEveryMs)
519
+ : NODE_MANAGEMENT.STARTUP_REFRESH_INTERVAL_MS;
520
+ let retryDelayMs = initialDelayMs;
521
+ let nextNodeRefreshAt = 0;
522
+ while (!connected) {
523
+ const elapsedMs = Date.now() - start;
524
+ if (elapsedMs >= timeoutMs)
525
+ break;
526
+ if (nodeManagerEnabled && Date.now() >= nextNodeRefreshAt) {
527
+ await refreshStartupNodeServers(elapsedMs === 0 ? 'initial' : 'retry');
528
+ nextNodeRefreshAt = Date.now() + refreshNodesEveryMs;
529
+ }
530
+ if (connected)
531
+ break;
532
+ const remainingMs = timeoutMs - (Date.now() - start);
533
+ const sleepMs = Math.min(retryDelayMs, Math.max(0, remainingMs));
534
+ if (sleepMs > 0)
535
+ await sleep(sleepMs);
536
+ retryDelayMs = Math.min(maxDelayMs, retryDelayMs > 0 ? retryDelayMs * 2 : maxDelayMs);
537
+ }
538
+ if (!connected) {
539
+ const suffix = lastConnectionError?.message ? ` Last error: ${lastConnectionError.message}` : '';
540
+ throw new Error(`Timed out waiting for BitShares connection after ${timeoutMs}ms.${suffix}`);
541
+ }
542
+ return true;
543
+ }
544
+ /**
545
+ * Create a per-account client for signing transactions.
546
+ * @param {string} accountName - Account name
547
+ * @param {string|Object} privateKey - Private key or daemon signing token
548
+ * @returns {Promise<Object>} Account client with initPromise, newTx(), broadcast()
549
+ */
550
+ async function createAccountClient(accountName, privateKey) {
551
+ ensureInitialized();
552
+ await waitForConnected(TIMING.CONNECTION_TIMEOUT_MS);
553
+ const { createSigningClient } = require('./bitshares-native');
554
+ const signingClient = createSigningClient(_nativeClient, accountName, privateKey);
555
+ return signingClient.client;
556
+ }
557
+ /**
558
+ * Get the current connection status.
559
+ * @returns {string} Status string from native client
560
+ */
561
+ function getConnectionStatus() {
562
+ ensureInitialized();
563
+ return _nativeClient.getStatus();
564
+ }
565
+ /**
566
+ * Disconnect the BitShares client.
567
+ * @returns {Promise<void>}
568
+ */
569
+ async function disconnectClient() {
570
+ ensureInitialized();
571
+ intentionalDisconnect = true;
572
+ connected = false;
573
+ try {
574
+ try {
575
+ _nativeClient.disconnect();
576
+ }
577
+ catch (_) { }
578
+ if (_subscriptionManager) {
579
+ try {
580
+ if (typeof _subscriptionManager.removeNoticeSubscription === 'function') {
581
+ _subscriptionManager.removeNoticeSubscription();
582
+ }
583
+ }
584
+ catch (_) { }
585
+ }
586
+ }
587
+ finally {
588
+ intentionalDisconnect = false;
589
+ }
590
+ }
591
+ /**
592
+ * Reconnect using healthy nodes (for adapter cycles or periodic refresh).
593
+ * @param {string} [reason='adapter-cycle'] - Reason for reconnection
594
+ * @returns {Promise<boolean>} True if reconnection succeeded
595
+ */
596
+ async function reconnectForCycle(reason = 'adapter-cycle') {
597
+ ensureInitialized();
598
+ const nodes = nodeManager && nodeConfig?.healthCheck?.enabled !== false
599
+ ? nodeManager.getHealthyNodes()
600
+ : [];
601
+ const effective = nodes.length > 0 ? nodes : getConfiguredOrDefaultNodes();
602
+ return restartBitsharesConnection(effective, reason);
603
+ }
604
+ module.exports = {
605
+ BitShares: _lazyBitShares,
606
+ createAccountClient,
607
+ waitForConnected,
608
+ getConnectionStatus,
609
+ disconnectClient,
610
+ reconnectForCycle,
611
+ setSuppressConnectionLog,
612
+ getNodeManager: () => { ensureInitialized(); return nodeManager; },
613
+ getNodeStats: () => { ensureInitialized(); return nodeManager?.getStats(); },
614
+ getNodeSummary: () => { ensureInitialized(); return nodeManager?.getSummary(); },
615
+ getConnectionError: () => lastConnectionError,
616
+ onReconnect,
617
+ removeOnReconnect,
618
+ withTimeout,
619
+ _assessFailover: assessFailover,
620
+ _internal: {
621
+ get connected() {
622
+ ensureInitialized();
623
+ return connected;
624
+ },
625
+ },
626
+ };
627
+ //# sourceMappingURL=bitshares_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitshares_client.js","sourceRoot":"","sources":["../../modules/bitshares_client.ts"],"names":[],"mappings":"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"}