dexbot 1.4.16 → 1.4.18

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 (1679) hide show
  1. package/CHANGELOG.md +5019 -0
  2. package/README.md +4 -6
  3. package/analysis/README.md +468 -0
  4. package/analysis/ama_fitting/README.md +258 -0
  5. package/analysis/ama_fitting/analyze_ama_price_changes.ts +151 -0
  6. package/analysis/ama_fitting/analyze_lambda_vs_slow.ts +407 -0
  7. package/analysis/ama_fitting/calibrate_convergence_er.ts +199 -0
  8. package/analysis/ama_fitting/fetch_lp_candles.ts +187 -0
  9. package/analysis/ama_fitting/generate_unified_comparison_chart.ts +269 -0
  10. package/analysis/ama_fitting/optimizer_high_resolution.ts +792 -0
  11. package/analysis/ama_fitting/package.json +12 -0
  12. package/analysis/analyze_derivatives.ts +318 -0
  13. package/analysis/analyze_dynamic_weight.ts +219 -0
  14. package/analysis/analyze_kalman.ts +126 -0
  15. package/analysis/analyze_regime.ts +156 -0
  16. package/analysis/analyze_regime_windows.ts +460 -0
  17. package/analysis/analyze_risk_profile.ts +199 -0
  18. package/analysis/analyze_trade_heatmap.ts +362 -0
  19. package/analysis/analyze_volatility.ts +182 -0
  20. package/analysis/bot_fitting/README.md +124 -0
  21. package/analysis/bot_fitting/backtest_ama_sweep.ts +816 -0
  22. package/analysis/bot_fitting/backtest_bot_fitting.ts +421 -0
  23. package/analysis/bot_fitting/shared_utils.ts +46 -0
  24. package/analysis/bot_key_utils.ts +154 -0
  25. package/analysis/bot_usage/discover_bot_accounts.ts +579 -0
  26. package/analysis/bot_usage/kibana_bot_queries.ts +427 -0
  27. package/analysis/chart_css.ts +60 -0
  28. package/analysis/chart_ui.ts +106 -0
  29. package/analysis/chart_utils.ts +161 -0
  30. package/analysis/derivative_chart_generator.ts +874 -0
  31. package/analysis/math_utils.ts +60 -0
  32. package/analysis/price_sources.ts +130 -0
  33. package/analysis/resolve_source.ts +89 -0
  34. package/analysis/trade_profitability.ts +1412 -0
  35. package/analysis/tradingview/README.md +161 -0
  36. package/analysis/tradingview/analyze_tradingview.ts +160 -0
  37. package/analysis/tradingview/tradingview_uplot_chart_generator.ts +1718 -0
  38. package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +437 -0
  39. package/analysis/trend_detection/README.md +27 -0
  40. package/analysis/trend_detection/SIGNAL_DOCUMENTATION.md +403 -0
  41. package/analysis/trend_detection/derivative_analyzer.ts +1050 -0
  42. package/analysis/trend_detection/dynamic_weight_chart_generator.ts +1376 -0
  43. package/analysis/trend_detection/hurst_analyzer.ts +7 -0
  44. package/analysis/trend_detection/kalman_chart_generator.ts +371 -0
  45. package/analysis/trend_detection/kalman_trend_analyzer.ts +9 -0
  46. package/analysis/trend_detection/kalman_velocity_smoothing.ts +7 -0
  47. package/analysis/trend_detection/package.json +23 -0
  48. package/analysis/trend_detection/permutation_entropy_analyzer.ts +7 -0
  49. package/analysis/trend_detection/regime_chart_generator.ts +319 -0
  50. package/analysis/trend_detection/tests/test_kalman_trend.ts +153 -0
  51. package/analysis/trend_detection/tests/test_kalman_velocity_smoothing.ts +64 -0
  52. package/analysis/trend_detection/volatility_chart_generator.ts +655 -0
  53. package/analysis/tsconfig.json +29 -0
  54. package/analysis/uplot/index.d.ts +128 -0
  55. package/analysis/uplot/uPlot.iife.min.js +2 -0
  56. package/analysis/uplot/uPlot.min.css +1 -0
  57. package/claw/README.md +49 -45
  58. package/claw/docs/AI_BOT_LIBRARY_API.md +6 -6
  59. package/claw/examples/claw_profiles_example.ts +1 -1
  60. package/claw/examples/memu_integration_example.ts +1 -1
  61. package/claw/examples/short_mpa_bts_strategy.ts +3 -3
  62. package/claw/modules/bitshares_client.ts +47 -7
  63. package/claw/modules/chain_actions.ts +10 -1
  64. package/claw/modules/claw_infra.ts +13 -3
  65. package/claw/modules/claw_launcher.ts +41 -7
  66. package/claw/modules/claw_manifest.ts +9 -1
  67. package/claw/modules/claw_skill_md.ts +34 -13
  68. package/claw/modules/credit_runtime_adapter.ts +24 -5
  69. package/claw/modules/decision_loop.ts +10 -2
  70. package/claw/modules/dexbot_profiles.ts +1 -24
  71. package/claw/modules/feed_price_source.ts +1 -1
  72. package/claw/modules/honest_ecosystem.ts +32 -8
  73. package/claw/modules/kibana_price_source.ts +6 -2
  74. package/claw/modules/launcher_mode_detector.ts +10 -13
  75. package/claw/modules/liquidity_pools.ts +2 -2
  76. package/claw/modules/mcp_utils.ts +46 -5
  77. package/claw/modules/memu_bridge.ts +17 -1
  78. package/claw/modules/position_discovery.ts +1 -1
  79. package/claw/modules/position_health.ts +1 -1
  80. package/claw/modules/position_manager.ts +39 -13
  81. package/claw/modules/skill_utils.ts +4 -8
  82. package/claw/modules/types.ts +20 -1
  83. package/claw/package.json +21 -21
  84. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  85. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  86. package/claw/scripts/claw_bridge.ts +24 -5
  87. package/claw/scripts/claw_mcp_server.ts +28 -13
  88. package/claw/scripts/claw_skill_md.ts +1 -1
  89. package/claw/scripts/honest_assets_report.ts +3 -1
  90. package/claw/scripts/memu_mcp_server.ts +15 -4
  91. package/claw/skills/launcher-ops/references/launcher-workflow.md +5 -5
  92. package/claw/skills/margin-trading/references/honest-asset-list.md +1 -1
  93. package/claw/skills/memu-memory/SKILL.md +3 -3
  94. package/claw/tests/test_claw_data_flow.ts +4 -2
  95. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  96. package/claw/tests/test_claw_regressions.ts +5 -0
  97. package/claw/tests/test_claw_skill_generation.ts +3 -3
  98. package/claw/tests/test_nullclaw_tmp_integration.ts +1 -1
  99. package/claw/tsconfig.json +1 -2
  100. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
  101. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
  102. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +148 -0
  103. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
  104. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +12 -0
  105. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
  106. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +389 -0
  107. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
  108. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
  109. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
  110. package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
  111. package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
  112. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
  113. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
  114. package/dist/analysis/ama_fitting/fetch_lp_candles.js +213 -0
  115. package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
  116. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +25 -0
  117. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
  118. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +247 -0
  119. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
  120. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +35 -0
  121. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
  122. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
  123. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
  124. package/dist/analysis/analyze_derivatives.d.ts +86 -0
  125. package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
  126. package/dist/analysis/analyze_derivatives.js +285 -0
  127. package/dist/analysis/analyze_derivatives.js.map +1 -0
  128. package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
  129. package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
  130. package/dist/analysis/analyze_dynamic_weight.js +197 -0
  131. package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
  132. package/dist/analysis/analyze_kalman.d.ts +13 -0
  133. package/dist/analysis/analyze_kalman.d.ts.map +1 -0
  134. package/dist/analysis/analyze_kalman.js +118 -0
  135. package/dist/analysis/analyze_kalman.js.map +1 -0
  136. package/dist/analysis/analyze_regime.d.ts +20 -0
  137. package/dist/analysis/analyze_regime.d.ts.map +1 -0
  138. package/dist/analysis/analyze_regime.js +139 -0
  139. package/dist/analysis/analyze_regime.js.map +1 -0
  140. package/dist/analysis/analyze_regime_windows.d.ts +19 -0
  141. package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
  142. package/dist/analysis/analyze_regime_windows.js +414 -0
  143. package/dist/analysis/analyze_regime_windows.js.map +1 -0
  144. package/dist/analysis/analyze_risk_profile.d.ts +3 -0
  145. package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
  146. package/dist/analysis/analyze_risk_profile.js +186 -0
  147. package/dist/analysis/analyze_risk_profile.js.map +1 -0
  148. package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
  149. package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
  150. package/dist/analysis/analyze_trade_heatmap.js +358 -0
  151. package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
  152. package/dist/analysis/analyze_volatility.d.ts +22 -0
  153. package/dist/analysis/analyze_volatility.d.ts.map +1 -0
  154. package/dist/analysis/analyze_volatility.js +165 -0
  155. package/dist/analysis/analyze_volatility.js.map +1 -0
  156. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +91 -0
  157. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
  158. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +792 -0
  159. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
  160. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
  161. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
  162. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +380 -0
  163. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
  164. package/dist/analysis/bot_fitting/shared_utils.d.ts +26 -0
  165. package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
  166. package/dist/analysis/bot_fitting/shared_utils.js +42 -0
  167. package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
  168. package/dist/analysis/bot_key_utils.d.ts +11 -0
  169. package/dist/analysis/bot_key_utils.d.ts.map +1 -0
  170. package/dist/analysis/bot_key_utils.js +153 -0
  171. package/dist/analysis/bot_key_utils.js.map +1 -0
  172. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
  173. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
  174. package/dist/analysis/bot_usage/discover_bot_accounts.js +499 -0
  175. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
  176. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +531 -0
  177. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
  178. package/dist/analysis/bot_usage/kibana_bot_queries.js +399 -0
  179. package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
  180. package/dist/analysis/chart_css.d.ts +17 -0
  181. package/dist/analysis/chart_css.d.ts.map +1 -0
  182. package/dist/analysis/chart_css.js +49 -0
  183. package/dist/analysis/chart_css.js.map +1 -0
  184. package/dist/analysis/chart_ui.d.ts +45 -0
  185. package/dist/analysis/chart_ui.d.ts.map +1 -0
  186. package/dist/analysis/chart_ui.js +97 -0
  187. package/dist/analysis/chart_ui.js.map +1 -0
  188. package/dist/analysis/derivative_chart_generator.d.ts +12 -0
  189. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
  190. package/dist/analysis/derivative_chart_generator.js +891 -0
  191. package/dist/analysis/derivative_chart_generator.js.map +1 -0
  192. package/dist/analysis/price_sources.d.ts +40 -0
  193. package/dist/analysis/price_sources.d.ts.map +1 -0
  194. package/dist/analysis/price_sources.js +94 -0
  195. package/dist/analysis/price_sources.js.map +1 -0
  196. package/dist/analysis/resolve_source.d.ts +25 -0
  197. package/dist/analysis/resolve_source.d.ts.map +1 -0
  198. package/dist/analysis/resolve_source.js +69 -0
  199. package/dist/analysis/resolve_source.js.map +1 -0
  200. package/dist/analysis/trade_profitability.d.ts +115 -0
  201. package/dist/analysis/trade_profitability.d.ts.map +1 -0
  202. package/dist/analysis/trade_profitability.js +1240 -0
  203. package/dist/analysis/trade_profitability.js.map +1 -0
  204. package/dist/analysis/tradingview/analyze_tradingview.d.ts +31 -0
  205. package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
  206. package/dist/analysis/tradingview/analyze_tradingview.js +146 -0
  207. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
  208. package/dist/analysis/trend_detection/derivative_analyzer.d.ts +247 -0
  209. package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
  210. package/dist/analysis/trend_detection/derivative_analyzer.js +901 -0
  211. package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
  212. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +3 -0
  213. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
  214. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1361 -0
  215. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
  216. package/dist/analysis/trend_detection/hurst_analyzer.d.ts +6 -0
  217. package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
  218. package/dist/analysis/trend_detection/hurst_analyzer.js +7 -0
  219. package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
  220. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +3 -0
  221. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
  222. package/dist/analysis/trend_detection/kalman_chart_generator.js +360 -0
  223. package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
  224. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +8 -0
  225. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
  226. package/dist/analysis/trend_detection/kalman_trend_analyzer.js +8 -0
  227. package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
  228. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +6 -0
  229. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
  230. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +7 -0
  231. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
  232. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +6 -0
  233. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
  234. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -0
  235. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
  236. package/dist/analysis/trend_detection/regime_chart_generator.d.ts +3 -0
  237. package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
  238. package/dist/analysis/trend_detection/regime_chart_generator.js +310 -0
  239. package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
  240. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
  241. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
  242. package/dist/analysis/trend_detection/tests/test_kalman_trend.js +128 -0
  243. package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
  244. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
  245. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
  246. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +37 -0
  247. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
  248. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +3 -0
  249. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
  250. package/dist/analysis/trend_detection/volatility_chart_generator.js +646 -0
  251. package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
  252. package/dist/bot.js +2 -2
  253. package/dist/bot.js.map +1 -1
  254. package/dist/credential-daemon.js +1 -1
  255. package/dist/credential-daemon.js.map +1 -1
  256. package/dist/market_adapter/ama_signal_runner.js +1 -1
  257. package/dist/market_adapter/ama_signal_runner.js.map +1 -1
  258. package/dist/market_adapter/core/market_adapter_service.js +2 -2
  259. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  260. package/dist/market_adapter/core/signals/hurst_analyzer.js +1 -1
  261. package/dist/market_adapter/core/signals/kalman_trend_analyzer.js +1 -1
  262. package/dist/market_adapter/core/signals/permutation_entropy_analyzer.js +1 -1
  263. package/dist/market_adapter/core/strategies/ama_slope_model.js +1 -1
  264. package/dist/market_adapter/core/strategies/collateral_manager.js +1 -1
  265. package/dist/market_adapter/core/strategies/regime_gate.js +1 -1
  266. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
  267. package/dist/market_adapter/lp_chart_core.js +1 -1
  268. package/dist/market_adapter/market_adapter.js +2 -2
  269. package/dist/market_adapter/market_adapter.js.map +1 -1
  270. package/dist/modules/account_bots.d.ts.map +1 -1
  271. package/dist/modules/account_bots.js +7 -17
  272. package/dist/modules/account_bots.js.map +1 -1
  273. package/dist/modules/account_orders.d.ts +8 -1
  274. package/dist/modules/account_orders.d.ts.map +1 -1
  275. package/dist/modules/account_orders.js +3 -11
  276. package/dist/modules/account_orders.js.map +1 -1
  277. package/dist/modules/authority_resolver.js +1 -1
  278. package/dist/modules/authority_resolver.js.map +1 -1
  279. package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts +1 -2
  280. package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts.map +1 -1
  281. package/dist/modules/bitshares-native/crypto/ecc.browser.js +19 -58
  282. package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -1
  283. package/dist/modules/bitshares-native/crypto/ecc.d.ts +2 -9
  284. package/dist/modules/bitshares-native/crypto/ecc.d.ts.map +1 -1
  285. package/dist/modules/bitshares-native/crypto/ecc.js +6 -145
  286. package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -1
  287. package/dist/modules/bitshares-native/serial/chain_constants.d.ts +1 -17
  288. package/dist/modules/bitshares-native/serial/chain_constants.d.ts.map +1 -1
  289. package/dist/modules/bitshares-native/serial/chain_constants.js +1 -30
  290. package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -1
  291. package/dist/modules/bitshares-native/serial/types.d.ts +1 -30
  292. package/dist/modules/bitshares-native/serial/types.d.ts.map +1 -1
  293. package/dist/modules/bitshares-native/serial/types.js +1 -169
  294. package/dist/modules/bitshares-native/serial/types.js.map +1 -1
  295. package/dist/modules/bitshares-native/signing_client.js +1 -1
  296. package/dist/modules/bitshares-native/signing_client.js.map +1 -1
  297. package/dist/modules/bitshares-native/subscriptions.js +7 -7
  298. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  299. package/dist/modules/bitshares-native/transport.js +1 -1
  300. package/dist/modules/bitshares-native/transport.js.map +1 -1
  301. package/dist/modules/bitshares-native/tx/builder.d.ts +1 -6
  302. package/dist/modules/bitshares-native/tx/builder.d.ts.map +1 -1
  303. package/dist/modules/bitshares-native/tx/builder.js +2 -11
  304. package/dist/modules/bitshares-native/tx/builder.js.map +1 -1
  305. package/dist/modules/bitshares-native/tx/tx_cache.js +1 -1
  306. package/dist/modules/bitshares-native/tx/tx_cache.js.map +1 -1
  307. package/dist/modules/bitshares_client.js +1 -1
  308. package/dist/modules/bitshares_client.js.map +1 -1
  309. package/dist/modules/bot_settings.js +1 -1
  310. package/dist/modules/bot_settings.js.map +1 -1
  311. package/dist/modules/chain_keys.d.ts +2 -2
  312. package/dist/modules/chain_keys.js +2 -2
  313. package/dist/modules/chain_orders.d.ts.map +1 -1
  314. package/dist/modules/chain_orders.js +7 -23
  315. package/dist/modules/chain_orders.js.map +1 -1
  316. package/dist/modules/constants.js +1 -1
  317. package/dist/modules/constants.js.map +1 -1
  318. package/dist/modules/cr_planner.js +3 -3
  319. package/dist/modules/cr_planner.js.map +1 -1
  320. package/dist/modules/credential_policy.d.ts.map +1 -1
  321. package/dist/modules/credential_policy.js +5 -11
  322. package/dist/modules/credential_policy.js.map +1 -1
  323. package/dist/modules/credit_runtime.d.ts.map +1 -1
  324. package/dist/modules/credit_runtime.js +18 -27
  325. package/dist/modules/credit_runtime.js.map +1 -1
  326. package/dist/modules/crypto/pure_secp256k1.d.ts +4 -1
  327. package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -1
  328. package/dist/modules/crypto/pure_secp256k1.js +1 -1
  329. package/dist/modules/crypto/pure_secp256k1.js.map +1 -1
  330. package/dist/modules/crypto/sync.d.ts +0 -3
  331. package/dist/modules/crypto/sync.d.ts.map +1 -1
  332. package/dist/modules/crypto/sync.js +0 -3
  333. package/dist/modules/crypto/sync.js.map +1 -1
  334. package/dist/modules/dexbot_class.d.ts +9 -9
  335. package/dist/modules/dexbot_class.js +9 -9
  336. package/dist/modules/dexbot_cow_runtime.d.ts +3 -3
  337. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  338. package/dist/modules/dexbot_cow_runtime.js +4 -9
  339. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  340. package/dist/modules/dexbot_fill_runtime.d.ts +10 -10
  341. package/dist/modules/dexbot_fill_runtime.js +10 -10
  342. package/dist/modules/dexbot_maintenance_runtime.d.ts +7 -7
  343. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  344. package/dist/modules/dexbot_maintenance_runtime.js +16 -15
  345. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  346. package/dist/modules/env.d.ts +0 -1
  347. package/dist/modules/env.d.ts.map +1 -1
  348. package/dist/modules/env.js +0 -34
  349. package/dist/modules/env.js.map +1 -1
  350. package/dist/modules/graceful_shutdown.js +1 -1
  351. package/dist/modules/graceful_shutdown.js.map +1 -1
  352. package/dist/modules/launcher/launch_modes.d.ts +1 -2
  353. package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
  354. package/dist/modules/launcher/launch_modes.js +1 -2
  355. package/dist/modules/launcher/launch_modes.js.map +1 -1
  356. package/dist/modules/launcher/market_adapter_runtime.d.ts +1 -2
  357. package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
  358. package/dist/modules/launcher/market_adapter_runtime.js +1 -4
  359. package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
  360. package/dist/modules/launcher/monolithic_runtime.d.ts +1 -2
  361. package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
  362. package/dist/modules/launcher/monolithic_runtime.js +1 -15
  363. package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
  364. package/dist/modules/launcher/runtime_entry.d.ts +1 -2
  365. package/dist/modules/launcher/runtime_entry.d.ts.map +1 -1
  366. package/dist/modules/launcher/runtime_entry.js +1 -14
  367. package/dist/modules/launcher/runtime_entry.js.map +1 -1
  368. package/dist/modules/launcher/status_reporting.d.ts +1 -3
  369. package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
  370. package/dist/modules/launcher/status_reporting.js +1 -10
  371. package/dist/modules/launcher/status_reporting.js.map +1 -1
  372. package/dist/modules/node_manager.d.ts.map +1 -1
  373. package/dist/modules/node_manager.js +4 -3
  374. package/dist/modules/node_manager.js.map +1 -1
  375. package/dist/modules/order/export.d.ts.map +1 -1
  376. package/dist/modules/order/export.js +4 -3
  377. package/dist/modules/order/export.js.map +1 -1
  378. package/dist/modules/order/format.d.ts +1 -10
  379. package/dist/modules/order/format.d.ts.map +1 -1
  380. package/dist/modules/order/format.js +1 -22
  381. package/dist/modules/order/format.js.map +1 -1
  382. package/dist/modules/order/grid.d.ts +19 -19
  383. package/dist/modules/order/grid.d.ts.map +1 -1
  384. package/dist/modules/order/grid.js +25 -25
  385. package/dist/modules/order/grid.js.map +1 -1
  386. package/dist/modules/order/grid_reconcile_internal.d.ts +1 -83
  387. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  388. package/dist/modules/order/grid_reconcile_internal.js +1 -1
  389. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  390. package/dist/modules/order/manager.d.ts +15 -15
  391. package/dist/modules/order/manager.js +15 -15
  392. package/dist/modules/order/processed_fill_store.d.ts +1 -1
  393. package/dist/modules/order/processed_fill_store.js +1 -1
  394. package/dist/modules/order/sync_engine.d.ts +4 -4
  395. package/dist/modules/order/sync_engine.js +4 -4
  396. package/dist/modules/order/utils/math.d.ts +7 -2
  397. package/dist/modules/order/utils/math.d.ts.map +1 -1
  398. package/dist/modules/order/utils/math.js +10 -3
  399. package/dist/modules/order/utils/math.js.map +1 -1
  400. package/dist/modules/order/utils/order.js +3 -3
  401. package/dist/modules/order/utils/order.js.map +1 -1
  402. package/dist/modules/order/utils/system.d.ts +17 -1
  403. package/dist/modules/order/utils/system.d.ts.map +1 -1
  404. package/dist/modules/order/utils/system.js +45 -3
  405. package/dist/modules/order/utils/system.js.map +1 -1
  406. package/dist/modules/order/utils/validate.d.ts +3 -3
  407. package/dist/modules/order/utils/validate.d.ts.map +1 -1
  408. package/dist/modules/order/utils/validate.js +5 -5
  409. package/dist/modules/order/utils/validate.js.map +1 -1
  410. package/dist/modules/order/utils/withPoolRef.js +1 -1
  411. package/dist/modules/order/utils/withPoolRef.js.map +1 -1
  412. package/dist/modules/paths.d.ts +4 -2
  413. package/dist/modules/paths.d.ts.map +1 -1
  414. package/dist/modules/paths.js +5 -3
  415. package/dist/modules/paths.js.map +1 -1
  416. package/dist/modules/runtime.d.ts +1 -0
  417. package/dist/modules/runtime.d.ts.map +1 -1
  418. package/dist/modules/runtime_settings.d.ts.map +1 -1
  419. package/dist/modules/runtime_settings.js +26 -30
  420. package/dist/modules/runtime_settings.js.map +1 -1
  421. package/dist/modules/settings_merge.d.ts +7 -1
  422. package/dist/modules/settings_merge.d.ts.map +1 -1
  423. package/dist/modules/settings_merge.js +10 -6
  424. package/dist/modules/settings_merge.js.map +1 -1
  425. package/dist/modules/types.d.ts +0 -753
  426. package/dist/modules/types.d.ts.map +1 -1
  427. package/dist/modules/types.js +0 -15
  428. package/dist/modules/types.js.map +1 -1
  429. package/dist/modules/utils/base58check.js +4 -4
  430. package/dist/modules/utils/base58check.js.map +1 -1
  431. package/dist/modules/validate_profiles.d.ts +1 -11
  432. package/dist/modules/validate_profiles.d.ts.map +1 -1
  433. package/dist/modules/validate_profiles.js +1 -1
  434. package/dist/modules/validate_profiles.js.map +1 -1
  435. package/dist/scripts/generate_lp_chart.js +1 -1
  436. package/dist/scripts/test-credit-renewal.js +1 -1
  437. package/dist/scripts/update.d.ts +3 -0
  438. package/dist/scripts/update.d.ts.map +1 -1
  439. package/dist/scripts/update.js +91 -6
  440. package/dist/scripts/update.js.map +1 -1
  441. package/docs/BITSHARES_ONBOARDING.md +435 -0
  442. package/docs/COPY_ON_WRITE_MASTER_PLAN.md +514 -0
  443. package/docs/COW_INVARIANTS.md +309 -0
  444. package/docs/CREDENTIAL_SECURITY.md +450 -0
  445. package/docs/DEXBOT_COMPARISON.md +922 -0
  446. package/docs/EVOLUTION.md +211 -0
  447. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +851 -0
  448. package/docs/GRID_RECALCULATION.md +624 -0
  449. package/docs/GRID_RECONCILE.md +259 -0
  450. package/docs/LOGGING.md +318 -0
  451. package/docs/MPA_CREDIT_USAGE.md +353 -0
  452. package/docs/README.md +199 -0
  453. package/docs/WORKFLOW.md +369 -0
  454. package/docs/architecture.md +1466 -0
  455. package/docs/developer_guide.md +1929 -0
  456. package/docs/docker.md +141 -0
  457. package/market_adapter/README.md +1003 -0
  458. package/modules/README.md +176 -0
  459. package/package.json +49 -18
  460. package/scripts/README.md +67 -44
  461. package/scripts/bots +16 -0
  462. package/scripts/clean-dist.js +9 -0
  463. package/scripts/clear-market-adapter.sh +1 -1
  464. package/scripts/create-bot-symlinks.sh +3 -3
  465. package/scripts/dexbot +15 -0
  466. package/scripts/git-viewer.sh +489 -0
  467. package/scripts/keys +16 -0
  468. package/scripts/pdev.sh +38 -0
  469. package/scripts/pm2 +15 -0
  470. package/scripts/pmain.sh +45 -0
  471. package/scripts/ptest.sh +26 -0
  472. package/scripts/repo-stats.html +480 -0
  473. package/scripts/unlock +15 -0
  474. package/scripts/update.js +12 -0
  475. package/tests/README.md +135 -0
  476. package/claw/data/positions.json +0 -150070
  477. package/claw/node_modules/.package-lock.json +0 -935
  478. package/claw/node_modules/@babel/runtime/LICENSE +0 -22
  479. package/claw/node_modules/@babel/runtime/README.md +0 -19
  480. package/claw/node_modules/@babel/runtime/helpers/AwaitValue.js +0 -4
  481. package/claw/node_modules/@babel/runtime/helpers/OverloadYield.js +0 -4
  482. package/claw/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +0 -9
  483. package/claw/node_modules/@babel/runtime/helpers/applyDecs.js +0 -236
  484. package/claw/node_modules/@babel/runtime/helpers/applyDecs2203.js +0 -184
  485. package/claw/node_modules/@babel/runtime/helpers/applyDecs2203R.js +0 -191
  486. package/claw/node_modules/@babel/runtime/helpers/applyDecs2301.js +0 -222
  487. package/claw/node_modules/@babel/runtime/helpers/applyDecs2305.js +0 -133
  488. package/claw/node_modules/@babel/runtime/helpers/applyDecs2311.js +0 -124
  489. package/claw/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -6
  490. package/claw/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -4
  491. package/claw/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +0 -5
  492. package/claw/node_modules/@babel/runtime/helpers/assertClassBrand.js +0 -5
  493. package/claw/node_modules/@babel/runtime/helpers/assertThisInitialized.js +0 -5
  494. package/claw/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +0 -24
  495. package/claw/node_modules/@babel/runtime/helpers/asyncIterator.js +0 -45
  496. package/claw/node_modules/@babel/runtime/helpers/asyncToGenerator.js +0 -26
  497. package/claw/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +0 -5
  498. package/claw/node_modules/@babel/runtime/helpers/callSuper.js +0 -7
  499. package/claw/node_modules/@babel/runtime/helpers/checkInRHS.js +0 -6
  500. package/claw/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +0 -4
  501. package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +0 -10
  502. package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +0 -4
  503. package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +0 -7
  504. package/claw/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -4
  505. package/claw/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +0 -5
  506. package/claw/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +0 -4
  507. package/claw/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +0 -5
  508. package/claw/node_modules/@babel/runtime/helpers/classNameTDZError.js +0 -4
  509. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +0 -7
  510. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +0 -7
  511. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +0 -5
  512. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +0 -5
  513. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +0 -5
  514. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +0 -5
  515. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +0 -7
  516. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +0 -5
  517. package/claw/node_modules/@babel/runtime/helpers/classPrivateGetter.js +0 -5
  518. package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +0 -5
  519. package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +0 -5
  520. package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +0 -4
  521. package/claw/node_modules/@babel/runtime/helpers/classPrivateSetter.js +0 -5
  522. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +0 -7
  523. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +0 -7
  524. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +0 -7
  525. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +0 -5
  526. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +0 -4
  527. package/claw/node_modules/@babel/runtime/helpers/construct.js +0 -10
  528. package/claw/node_modules/@babel/runtime/helpers/createClass.js +0 -13
  529. package/claw/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +0 -50
  530. package/claw/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +0 -19
  531. package/claw/node_modules/@babel/runtime/helpers/createSuper.js +0 -16
  532. package/claw/node_modules/@babel/runtime/helpers/decorate.js +0 -250
  533. package/claw/node_modules/@babel/runtime/helpers/defaults.js +0 -9
  534. package/claw/node_modules/@babel/runtime/helpers/defineAccessor.js +0 -8
  535. package/claw/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +0 -12
  536. package/claw/node_modules/@babel/runtime/helpers/defineProperty.js +0 -10
  537. package/claw/node_modules/@babel/runtime/helpers/dispose.js +0 -28
  538. package/claw/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +0 -4
  539. package/claw/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +0 -4
  540. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +0 -9
  541. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs.js +0 -236
  542. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +0 -184
  543. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +0 -191
  544. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +0 -222
  545. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +0 -133
  546. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +0 -124
  547. package/claw/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -6
  548. package/claw/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -4
  549. package/claw/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +0 -5
  550. package/claw/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +0 -5
  551. package/claw/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -5
  552. package/claw/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +0 -24
  553. package/claw/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +0 -45
  554. package/claw/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +0 -26
  555. package/claw/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +0 -5
  556. package/claw/node_modules/@babel/runtime/helpers/esm/callSuper.js +0 -7
  557. package/claw/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +0 -6
  558. package/claw/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +0 -4
  559. package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +0 -10
  560. package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +0 -4
  561. package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +0 -7
  562. package/claw/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -4
  563. package/claw/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +0 -5
  564. package/claw/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +0 -4
  565. package/claw/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +0 -5
  566. package/claw/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +0 -4
  567. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +0 -7
  568. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +0 -7
  569. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +0 -5
  570. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +0 -5
  571. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +0 -5
  572. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +0 -5
  573. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +0 -7
  574. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +0 -5
  575. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +0 -5
  576. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +0 -5
  577. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +0 -5
  578. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +0 -4
  579. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +0 -5
  580. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +0 -7
  581. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +0 -7
  582. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +0 -7
  583. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +0 -5
  584. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +0 -4
  585. package/claw/node_modules/@babel/runtime/helpers/esm/construct.js +0 -10
  586. package/claw/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -13
  587. package/claw/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +0 -50
  588. package/claw/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +0 -19
  589. package/claw/node_modules/@babel/runtime/helpers/esm/createSuper.js +0 -16
  590. package/claw/node_modules/@babel/runtime/helpers/esm/decorate.js +0 -250
  591. package/claw/node_modules/@babel/runtime/helpers/esm/defaults.js +0 -9
  592. package/claw/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +0 -8
  593. package/claw/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +0 -12
  594. package/claw/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -10
  595. package/claw/node_modules/@babel/runtime/helpers/esm/dispose.js +0 -28
  596. package/claw/node_modules/@babel/runtime/helpers/esm/extends.js +0 -10
  597. package/claw/node_modules/@babel/runtime/helpers/esm/get.js +0 -11
  598. package/claw/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -6
  599. package/claw/node_modules/@babel/runtime/helpers/esm/identity.js +0 -4
  600. package/claw/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +0 -27
  601. package/claw/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -14
  602. package/claw/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +0 -5
  603. package/claw/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +0 -9
  604. package/claw/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +0 -4
  605. package/claw/node_modules/@babel/runtime/helpers/esm/instanceof.js +0 -4
  606. package/claw/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +0 -6
  607. package/claw/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +0 -22
  608. package/claw/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +0 -8
  609. package/claw/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +0 -9
  610. package/claw/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -4
  611. package/claw/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +0 -28
  612. package/claw/node_modules/@babel/runtime/helpers/esm/jsx.js +0 -22
  613. package/claw/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +0 -9
  614. package/claw/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +0 -4
  615. package/claw/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -4
  616. package/claw/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +0 -4
  617. package/claw/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +0 -4
  618. package/claw/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +0 -4
  619. package/claw/node_modules/@babel/runtime/helpers/esm/objectSpread.js +0 -14
  620. package/claw/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +0 -23
  621. package/claw/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +0 -13
  622. package/claw/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -10
  623. package/claw/node_modules/@babel/runtime/helpers/esm/package.json +0 -3
  624. package/claw/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -8
  625. package/claw/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +0 -4
  626. package/claw/node_modules/@babel/runtime/helpers/esm/regenerator.js +0 -89
  627. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsync.js +0 -8
  628. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncGen.js +0 -6
  629. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncIterator.js +0 -33
  630. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorDefine.js +0 -22
  631. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorKeys.js +0 -10
  632. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +0 -77
  633. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorValues.js +0 -19
  634. package/claw/node_modules/@babel/runtime/helpers/esm/set.js +0 -22
  635. package/claw/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +0 -12
  636. package/claw/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -6
  637. package/claw/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +0 -7
  638. package/claw/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +0 -8
  639. package/claw/node_modules/@babel/runtime/helpers/esm/superPropBase.js +0 -6
  640. package/claw/node_modules/@babel/runtime/helpers/esm/superPropGet.js +0 -9
  641. package/claw/node_modules/@babel/runtime/helpers/esm/superPropSet.js +0 -6
  642. package/claw/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +0 -8
  643. package/claw/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +0 -4
  644. package/claw/node_modules/@babel/runtime/helpers/esm/tdz.js +0 -4
  645. package/claw/node_modules/@babel/runtime/helpers/esm/temporalRef.js +0 -6
  646. package/claw/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +0 -2
  647. package/claw/node_modules/@babel/runtime/helpers/esm/toArray.js +0 -8
  648. package/claw/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +0 -8
  649. package/claw/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -12
  650. package/claw/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -7
  651. package/claw/node_modules/@babel/runtime/helpers/esm/toSetter.js +0 -10
  652. package/claw/node_modules/@babel/runtime/helpers/esm/tsRewriteRelativeImportExtensions.js +0 -6
  653. package/claw/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -10
  654. package/claw/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -9
  655. package/claw/node_modules/@babel/runtime/helpers/esm/using.js +0 -12
  656. package/claw/node_modules/@babel/runtime/helpers/esm/usingCtx.js +0 -59
  657. package/claw/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +0 -56
  658. package/claw/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +0 -27
  659. package/claw/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +0 -52
  660. package/claw/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +0 -4
  661. package/claw/node_modules/@babel/runtime/helpers/extends.js +0 -10
  662. package/claw/node_modules/@babel/runtime/helpers/get.js +0 -11
  663. package/claw/node_modules/@babel/runtime/helpers/getPrototypeOf.js +0 -6
  664. package/claw/node_modules/@babel/runtime/helpers/identity.js +0 -4
  665. package/claw/node_modules/@babel/runtime/helpers/importDeferProxy.js +0 -27
  666. package/claw/node_modules/@babel/runtime/helpers/inherits.js +0 -14
  667. package/claw/node_modules/@babel/runtime/helpers/inheritsLoose.js +0 -5
  668. package/claw/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +0 -9
  669. package/claw/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +0 -4
  670. package/claw/node_modules/@babel/runtime/helpers/instanceof.js +0 -4
  671. package/claw/node_modules/@babel/runtime/helpers/interopRequireDefault.js +0 -6
  672. package/claw/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +0 -22
  673. package/claw/node_modules/@babel/runtime/helpers/isNativeFunction.js +0 -8
  674. package/claw/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +0 -9
  675. package/claw/node_modules/@babel/runtime/helpers/iterableToArray.js +0 -4
  676. package/claw/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -28
  677. package/claw/node_modules/@babel/runtime/helpers/jsx.js +0 -22
  678. package/claw/node_modules/@babel/runtime/helpers/maybeArrayLike.js +0 -9
  679. package/claw/node_modules/@babel/runtime/helpers/newArrowCheck.js +0 -4
  680. package/claw/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -4
  681. package/claw/node_modules/@babel/runtime/helpers/nonIterableSpread.js +0 -4
  682. package/claw/node_modules/@babel/runtime/helpers/nullishReceiverError.js +0 -4
  683. package/claw/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +0 -4
  684. package/claw/node_modules/@babel/runtime/helpers/objectSpread.js +0 -14
  685. package/claw/node_modules/@babel/runtime/helpers/objectSpread2.js +0 -23
  686. package/claw/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +0 -13
  687. package/claw/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +0 -10
  688. package/claw/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +0 -8
  689. package/claw/node_modules/@babel/runtime/helpers/readOnlyError.js +0 -4
  690. package/claw/node_modules/@babel/runtime/helpers/regenerator.js +0 -89
  691. package/claw/node_modules/@babel/runtime/helpers/regeneratorAsync.js +0 -8
  692. package/claw/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js +0 -6
  693. package/claw/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js +0 -33
  694. package/claw/node_modules/@babel/runtime/helpers/regeneratorDefine.js +0 -22
  695. package/claw/node_modules/@babel/runtime/helpers/regeneratorKeys.js +0 -10
  696. package/claw/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +0 -77
  697. package/claw/node_modules/@babel/runtime/helpers/regeneratorValues.js +0 -19
  698. package/claw/node_modules/@babel/runtime/helpers/set.js +0 -22
  699. package/claw/node_modules/@babel/runtime/helpers/setFunctionName.js +0 -12
  700. package/claw/node_modules/@babel/runtime/helpers/setPrototypeOf.js +0 -6
  701. package/claw/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +0 -7
  702. package/claw/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -8
  703. package/claw/node_modules/@babel/runtime/helpers/superPropBase.js +0 -6
  704. package/claw/node_modules/@babel/runtime/helpers/superPropGet.js +0 -9
  705. package/claw/node_modules/@babel/runtime/helpers/superPropSet.js +0 -6
  706. package/claw/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +0 -8
  707. package/claw/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +0 -4
  708. package/claw/node_modules/@babel/runtime/helpers/tdz.js +0 -4
  709. package/claw/node_modules/@babel/runtime/helpers/temporalRef.js +0 -6
  710. package/claw/node_modules/@babel/runtime/helpers/temporalUndefined.js +0 -2
  711. package/claw/node_modules/@babel/runtime/helpers/toArray.js +0 -8
  712. package/claw/node_modules/@babel/runtime/helpers/toConsumableArray.js +0 -8
  713. package/claw/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -12
  714. package/claw/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -7
  715. package/claw/node_modules/@babel/runtime/helpers/toSetter.js +0 -10
  716. package/claw/node_modules/@babel/runtime/helpers/tsRewriteRelativeImportExtensions.js +0 -6
  717. package/claw/node_modules/@babel/runtime/helpers/typeof.js +0 -10
  718. package/claw/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -9
  719. package/claw/node_modules/@babel/runtime/helpers/using.js +0 -12
  720. package/claw/node_modules/@babel/runtime/helpers/usingCtx.js +0 -59
  721. package/claw/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +0 -56
  722. package/claw/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +0 -27
  723. package/claw/node_modules/@babel/runtime/helpers/wrapRegExp.js +0 -52
  724. package/claw/node_modules/@babel/runtime/helpers/writeOnlyError.js +0 -4
  725. package/claw/node_modules/@babel/runtime/package.json +0 -1107
  726. package/claw/node_modules/@babel/runtime/regenerator/index.js +0 -15
  727. package/claw/node_modules/assert/.github/FUNDING.yml +0 -12
  728. package/claw/node_modules/assert/.github/SECURITY.md +0 -10
  729. package/claw/node_modules/assert/.travis.yml +0 -30
  730. package/claw/node_modules/assert/.zuul.yml +0 -13
  731. package/claw/node_modules/assert/CHANGELOG.md +0 -11
  732. package/claw/node_modules/assert/LICENSE +0 -18
  733. package/claw/node_modules/assert/README.md +0 -105
  734. package/claw/node_modules/assert/assert.js +0 -506
  735. package/claw/node_modules/assert/package.json +0 -32
  736. package/claw/node_modules/assert/test.js +0 -360
  737. package/claw/node_modules/async-limiter/.eslintignore +0 -2
  738. package/claw/node_modules/async-limiter/.nycrc +0 -10
  739. package/claw/node_modules/async-limiter/.travis.yml +0 -9
  740. package/claw/node_modules/async-limiter/LICENSE +0 -8
  741. package/claw/node_modules/async-limiter/index.js +0 -67
  742. package/claw/node_modules/async-limiter/package.json +0 -35
  743. package/claw/node_modules/async-limiter/readme.md +0 -132
  744. package/claw/node_modules/available-typed-arrays/.eslintrc +0 -5
  745. package/claw/node_modules/available-typed-arrays/.github/FUNDING.yml +0 -12
  746. package/claw/node_modules/available-typed-arrays/.nycrc +0 -9
  747. package/claw/node_modules/available-typed-arrays/CHANGELOG.md +0 -100
  748. package/claw/node_modules/available-typed-arrays/LICENSE +0 -21
  749. package/claw/node_modules/available-typed-arrays/README.md +0 -55
  750. package/claw/node_modules/available-typed-arrays/index.d.ts +0 -8
  751. package/claw/node_modules/available-typed-arrays/index.js +0 -17
  752. package/claw/node_modules/available-typed-arrays/package.json +0 -93
  753. package/claw/node_modules/available-typed-arrays/test/index.js +0 -18
  754. package/claw/node_modules/available-typed-arrays/tsconfig.json +0 -49
  755. package/claw/node_modules/base-x/LICENSE.md +0 -22
  756. package/claw/node_modules/base-x/README.md +0 -67
  757. package/claw/node_modules/base-x/package.json +0 -49
  758. package/claw/node_modules/base-x/src/index.d.ts +0 -10
  759. package/claw/node_modules/base-x/src/index.js +0 -123
  760. package/claw/node_modules/bigi/CHANGELOG.md +0 -85
  761. package/claw/node_modules/bigi/LICENSE.md +0 -30
  762. package/claw/node_modules/bigi/README.md +0 -14
  763. package/claw/node_modules/bigi/lib/bigi.js +0 -1509
  764. package/claw/node_modules/bigi/lib/convert.js +0 -91
  765. package/claw/node_modules/bigi/lib/index.js +0 -6
  766. package/claw/node_modules/bigi/package.json +0 -55
  767. package/claw/node_modules/bignumber.js/CHANGELOG.md +0 -222
  768. package/claw/node_modules/bignumber.js/LICENCE +0 -23
  769. package/claw/node_modules/bignumber.js/README.md +0 -266
  770. package/claw/node_modules/bignumber.js/bignumber.d.ts +0 -1797
  771. package/claw/node_modules/bignumber.js/bignumber.js +0 -2814
  772. package/claw/node_modules/bignumber.js/bignumber.js.map +0 -1
  773. package/claw/node_modules/bignumber.js/bignumber.min.js +0 -3
  774. package/claw/node_modules/bignumber.js/bignumber.mjs +0 -2793
  775. package/claw/node_modules/bignumber.js/bower.json +0 -36
  776. package/claw/node_modules/bignumber.js/doc/API.html +0 -2118
  777. package/claw/node_modules/bignumber.js/package.json +0 -39
  778. package/claw/node_modules/bs58/CHANGELOG.md +0 -61
  779. package/claw/node_modules/bs58/README.md +0 -71
  780. package/claw/node_modules/bs58/index.js +0 -4
  781. package/claw/node_modules/bs58/package.json +0 -37
  782. package/claw/node_modules/btsdex/.babelrc +0 -17
  783. package/claw/node_modules/btsdex/.github/workflows/check-style.yml +0 -16
  784. package/claw/node_modules/btsdex/LICENSE +0 -21
  785. package/claw/node_modules/btsdex/README.md +0 -467
  786. package/claw/node_modules/btsdex/cli.js +0 -165
  787. package/claw/node_modules/btsdex/lib/account.js +0 -60
  788. package/claw/node_modules/btsdex/lib/asset.js +0 -78
  789. package/claw/node_modules/btsdex/lib/bitshares.js +0 -363
  790. package/claw/node_modules/btsdex/lib/event.js +0 -137
  791. package/claw/node_modules/btsdex/lib/fees.js +0 -34
  792. package/claw/node_modules/btsdex/lib/index.js +0 -3
  793. package/claw/node_modules/btsdex/lib/transaction/TransactionBuilder.js +0 -797
  794. package/claw/node_modules/btsdex/lib/transaction/index.js +0 -64
  795. package/claw/node_modules/btsdex/package.json +0 -54
  796. package/claw/node_modules/btsdex/yarn-error.log +0 -3483
  797. package/claw/node_modules/btsdex-api/.babelrc +0 -14
  798. package/claw/node_modules/btsdex-api/README.md +0 -3
  799. package/claw/node_modules/btsdex-api/lib/apis.js +0 -59
  800. package/claw/node_modules/btsdex-api/lib/config.js +0 -39
  801. package/claw/node_modules/btsdex-api/lib/connection.js +0 -188
  802. package/claw/node_modules/btsdex-api/lib/index.js +0 -86
  803. package/claw/node_modules/btsdex-api/lib/logger.js +0 -45
  804. package/claw/node_modules/btsdex-api/lib/servers.js +0 -30
  805. package/claw/node_modules/btsdex-api/package.json +0 -29
  806. package/claw/node_modules/btsdex-ecc/.babelrc +0 -13
  807. package/claw/node_modules/btsdex-ecc/lib/BrainKey.js +0 -15
  808. package/claw/node_modules/btsdex-ecc/lib/KeyUtils.js +0 -205
  809. package/claw/node_modules/btsdex-ecc/lib/PrivateKey.js +0 -198
  810. package/claw/node_modules/btsdex-ecc/lib/PublicKey.js +0 -197
  811. package/claw/node_modules/btsdex-ecc/lib/address.js +0 -84
  812. package/claw/node_modules/btsdex-ecc/lib/addressPrefix.js +0 -15
  813. package/claw/node_modules/btsdex-ecc/lib/aes.js +0 -294
  814. package/claw/node_modules/btsdex-ecc/lib/ecdsa.js +0 -194
  815. package/claw/node_modules/btsdex-ecc/lib/ecsignature.js +0 -131
  816. package/claw/node_modules/btsdex-ecc/lib/enforce_types.js +0 -54
  817. package/claw/node_modules/btsdex-ecc/lib/hash.js +0 -60
  818. package/claw/node_modules/btsdex-ecc/lib/index.js +0 -84
  819. package/claw/node_modules/btsdex-ecc/lib/signature.js +0 -185
  820. package/claw/node_modules/btsdex-ecc/package.json +0 -37
  821. package/claw/node_modules/btsdex-serializer/.babelrc +0 -13
  822. package/claw/node_modules/btsdex-serializer/lib/ChainTypes.js +0 -154
  823. package/claw/node_modules/btsdex-serializer/lib/FastParser.js +0 -75
  824. package/claw/node_modules/btsdex-serializer/lib/ObjectId.js +0 -65
  825. package/claw/node_modules/btsdex-serializer/lib/SerializerValidation.js +0 -377
  826. package/claw/node_modules/btsdex-serializer/lib/convert.js +0 -54
  827. package/claw/node_modules/btsdex-serializer/lib/error_with_cause.js +0 -43
  828. package/claw/node_modules/btsdex-serializer/lib/index.js +0 -72
  829. package/claw/node_modules/btsdex-serializer/lib/operations.js +0 -1359
  830. package/claw/node_modules/btsdex-serializer/lib/precision.js +0 -108
  831. package/claw/node_modules/btsdex-serializer/lib/serializer.js +0 -205
  832. package/claw/node_modules/btsdex-serializer/lib/template.js +0 -23
  833. package/claw/node_modules/btsdex-serializer/lib/types.js +0 -1209
  834. package/claw/node_modules/btsdex-serializer/package-lock.json +0 -238
  835. package/claw/node_modules/btsdex-serializer/package.json +0 -32
  836. package/claw/node_modules/bytebuffer/.travis.yml +0 -5
  837. package/claw/node_modules/bytebuffer/LICENSE +0 -202
  838. package/claw/node_modules/bytebuffer/README.md +0 -64
  839. package/claw/node_modules/bytebuffer/bower.json +0 -12
  840. package/claw/node_modules/bytebuffer/bytebuffer.png +0 -0
  841. package/claw/node_modules/bytebuffer/dist/README.md +0 -47
  842. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.js +0 -3461
  843. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.js +0 -88
  844. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.js.gz +0 -0
  845. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.map +0 -8
  846. package/claw/node_modules/bytebuffer/dist/bytebuffer-node.js +0 -3454
  847. package/claw/node_modules/bytebuffer/dist/bytebuffer.js +0 -3746
  848. package/claw/node_modules/bytebuffer/dist/bytebuffer.min.js +0 -93
  849. package/claw/node_modules/bytebuffer/dist/bytebuffer.min.js.gz +0 -0
  850. package/claw/node_modules/bytebuffer/dist/bytebuffer.min.map +0 -8
  851. package/claw/node_modules/bytebuffer/donate.png +0 -0
  852. package/claw/node_modules/bytebuffer/externs/bytebuffer.js +0 -862
  853. package/claw/node_modules/bytebuffer/externs/minimal-env.js +0 -52
  854. package/claw/node_modules/bytebuffer/index.js +0 -1
  855. package/claw/node_modules/bytebuffer/jsdoc.json +0 -13
  856. package/claw/node_modules/bytebuffer/package.json +0 -51
  857. package/claw/node_modules/bytebuffer/scripts/build.js +0 -113
  858. package/claw/node_modules/bytebuffer/src/bower.json +0 -12
  859. package/claw/node_modules/bytebuffer/src/bytebuffer.js +0 -220
  860. package/claw/node_modules/bytebuffer/src/encodings/base64.js +0 -88
  861. package/claw/node_modules/bytebuffer/src/encodings/binary.js +0 -74
  862. package/claw/node_modules/bytebuffer/src/encodings/debug.js +0 -211
  863. package/claw/node_modules/bytebuffer/src/encodings/hex.js +0 -75
  864. package/claw/node_modules/bytebuffer/src/encodings/impl/base64.js +0 -3
  865. package/claw/node_modules/bytebuffer/src/encodings/impl/binary.js +0 -65
  866. package/claw/node_modules/bytebuffer/src/encodings/impl/debug.js +0 -3
  867. package/claw/node_modules/bytebuffer/src/encodings/impl/hex.js +0 -101
  868. package/claw/node_modules/bytebuffer/src/encodings/impl/utf8.js +0 -126
  869. package/claw/node_modules/bytebuffer/src/encodings/utf8.js +0 -71
  870. package/claw/node_modules/bytebuffer/src/helpers.js +0 -143
  871. package/claw/node_modules/bytebuffer/src/macros.js +0 -222
  872. package/claw/node_modules/bytebuffer/src/methods/append.js +0 -58
  873. package/claw/node_modules/bytebuffer/src/methods/assert.js +0 -12
  874. package/claw/node_modules/bytebuffer/src/methods/capacity.js +0 -8
  875. package/claw/node_modules/bytebuffer/src/methods/clear.js +0 -13
  876. package/claw/node_modules/bytebuffer/src/methods/clone.js +0 -34
  877. package/claw/node_modules/bytebuffer/src/methods/compact.js +0 -49
  878. package/claw/node_modules/bytebuffer/src/methods/copy.js +0 -73
  879. package/claw/node_modules/bytebuffer/src/methods/ensureCapacity.js +0 -15
  880. package/claw/node_modules/bytebuffer/src/methods/fill.js +0 -35
  881. package/claw/node_modules/bytebuffer/src/methods/flip.js +0 -11
  882. package/claw/node_modules/bytebuffer/src/methods/mark.js +0 -17
  883. package/claw/node_modules/bytebuffer/src/methods/order.js +0 -36
  884. package/claw/node_modules/bytebuffer/src/methods/prepend.js +0 -87
  885. package/claw/node_modules/bytebuffer/src/methods/printDebug.js +0 -16
  886. package/claw/node_modules/bytebuffer/src/methods/remaining.js +0 -9
  887. package/claw/node_modules/bytebuffer/src/methods/reset.js +0 -17
  888. package/claw/node_modules/bytebuffer/src/methods/resize.js +0 -39
  889. package/claw/node_modules/bytebuffer/src/methods/reverse.js +0 -25
  890. package/claw/node_modules/bytebuffer/src/methods/skip.js +0 -19
  891. package/claw/node_modules/bytebuffer/src/methods/slice.js +0 -18
  892. package/claw/node_modules/bytebuffer/src/methods/static/accessor.js +0 -13
  893. package/claw/node_modules/bytebuffer/src/methods/static/allocate.js +0 -14
  894. package/claw/node_modules/bytebuffer/src/methods/static/concat.js +0 -55
  895. package/claw/node_modules/bytebuffer/src/methods/static/isByteBuffer.js +0 -9
  896. package/claw/node_modules/bytebuffer/src/methods/static/type.js +0 -11
  897. package/claw/node_modules/bytebuffer/src/methods/static/wrap.js +0 -125
  898. package/claw/node_modules/bytebuffer/src/methods/toBuffer.js +0 -77
  899. package/claw/node_modules/bytebuffer/src/methods/toString.js +0 -43
  900. package/claw/node_modules/bytebuffer/src/types/bytes/bitset.js +0 -89
  901. package/claw/node_modules/bytebuffer/src/types/bytes/bytes.js +0 -34
  902. package/claw/node_modules/bytebuffer/src/types/floats/float32.js +0 -81
  903. package/claw/node_modules/bytebuffer/src/types/floats/float64.js +0 -77
  904. package/claw/node_modules/bytebuffer/src/types/floats/ieee754.js +0 -130
  905. package/claw/node_modules/bytebuffer/src/types/ints/int16.js +0 -167
  906. package/claw/node_modules/bytebuffer/src/types/ints/int32.js +0 -125
  907. package/claw/node_modules/bytebuffer/src/types/ints/int64.js +0 -194
  908. package/claw/node_modules/bytebuffer/src/types/ints/int8.js +0 -137
  909. package/claw/node_modules/bytebuffer/src/types/strings/cstring.js +0 -110
  910. package/claw/node_modules/bytebuffer/src/types/strings/istring.js +0 -81
  911. package/claw/node_modules/bytebuffer/src/types/strings/utf8string.js +0 -214
  912. package/claw/node_modules/bytebuffer/src/types/strings/vstring.js +0 -78
  913. package/claw/node_modules/bytebuffer/src/types/varints/varint32.js +0 -164
  914. package/claw/node_modules/bytebuffer/src/types/varints/varint64.js +0 -208
  915. package/claw/node_modules/bytebuffer/src/wrap-node.js +0 -50
  916. package/claw/node_modules/bytebuffer/src/wrap.js +0 -43
  917. package/claw/node_modules/bytebuffer/tests/bench.js +0 -99
  918. package/claw/node_modules/bytebuffer/tests/suite.js +0 -1005
  919. package/claw/node_modules/call-bind/.eslintignore +0 -1
  920. package/claw/node_modules/call-bind/.eslintrc +0 -16
  921. package/claw/node_modules/call-bind/.github/FUNDING.yml +0 -12
  922. package/claw/node_modules/call-bind/.nycrc +0 -9
  923. package/claw/node_modules/call-bind/CHANGELOG.md +0 -106
  924. package/claw/node_modules/call-bind/LICENSE +0 -21
  925. package/claw/node_modules/call-bind/README.md +0 -64
  926. package/claw/node_modules/call-bind/callBound.js +0 -15
  927. package/claw/node_modules/call-bind/index.js +0 -24
  928. package/claw/node_modules/call-bind/package.json +0 -93
  929. package/claw/node_modules/call-bind/test/callBound.js +0 -54
  930. package/claw/node_modules/call-bind/test/index.js +0 -74
  931. package/claw/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  932. package/claw/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  933. package/claw/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  934. package/claw/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  935. package/claw/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  936. package/claw/node_modules/call-bind-apply-helpers/README.md +0 -62
  937. package/claw/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  938. package/claw/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  939. package/claw/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  940. package/claw/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  941. package/claw/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  942. package/claw/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  943. package/claw/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  944. package/claw/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  945. package/claw/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  946. package/claw/node_modules/call-bind-apply-helpers/index.js +0 -15
  947. package/claw/node_modules/call-bind-apply-helpers/package.json +0 -85
  948. package/claw/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  949. package/claw/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  950. package/claw/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  951. package/claw/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  952. package/claw/node_modules/call-bound/.eslintrc +0 -13
  953. package/claw/node_modules/call-bound/.github/FUNDING.yml +0 -12
  954. package/claw/node_modules/call-bound/.nycrc +0 -9
  955. package/claw/node_modules/call-bound/CHANGELOG.md +0 -42
  956. package/claw/node_modules/call-bound/LICENSE +0 -21
  957. package/claw/node_modules/call-bound/README.md +0 -53
  958. package/claw/node_modules/call-bound/index.d.ts +0 -94
  959. package/claw/node_modules/call-bound/index.js +0 -19
  960. package/claw/node_modules/call-bound/package.json +0 -99
  961. package/claw/node_modules/call-bound/test/index.js +0 -61
  962. package/claw/node_modules/call-bound/tsconfig.json +0 -10
  963. package/claw/node_modules/cipher-base/.eslintrc +0 -26
  964. package/claw/node_modules/cipher-base/.github/FUNDING.yml +0 -12
  965. package/claw/node_modules/cipher-base/CHANGELOG.md +0 -73
  966. package/claw/node_modules/cipher-base/LICENSE +0 -21
  967. package/claw/node_modules/cipher-base/README.md +0 -17
  968. package/claw/node_modules/cipher-base/index.js +0 -103
  969. package/claw/node_modules/cipher-base/package.json +0 -63
  970. package/claw/node_modules/cipher-base/test/index.js +0 -221
  971. package/claw/node_modules/core-util-is/LICENSE +0 -19
  972. package/claw/node_modules/core-util-is/README.md +0 -3
  973. package/claw/node_modules/core-util-is/lib/util.js +0 -107
  974. package/claw/node_modules/core-util-is/package.json +0 -38
  975. package/claw/node_modules/create-hash/.travis.yml +0 -17
  976. package/claw/node_modules/create-hash/LICENSE +0 -21
  977. package/claw/node_modules/create-hash/README.md +0 -19
  978. package/claw/node_modules/create-hash/browser.js +0 -30
  979. package/claw/node_modules/create-hash/index.js +0 -1
  980. package/claw/node_modules/create-hash/md5.js +0 -5
  981. package/claw/node_modules/create-hash/package.json +0 -39
  982. package/claw/node_modules/create-hash/test.js +0 -41
  983. package/claw/node_modules/create-hmac/LICENSE +0 -21
  984. package/claw/node_modules/create-hmac/README.md +0 -20
  985. package/claw/node_modules/create-hmac/browser.js +0 -62
  986. package/claw/node_modules/create-hmac/index.js +0 -1
  987. package/claw/node_modules/create-hmac/legacy.js +0 -46
  988. package/claw/node_modules/create-hmac/package.json +0 -45
  989. package/claw/node_modules/crypto-js/CONTRIBUTING.md +0 -28
  990. package/claw/node_modules/crypto-js/LICENSE +0 -24
  991. package/claw/node_modules/crypto-js/README.md +0 -241
  992. package/claw/node_modules/crypto-js/aes.js +0 -232
  993. package/claw/node_modules/crypto-js/bower.json +0 -35
  994. package/claw/node_modules/crypto-js/cipher-core.js +0 -880
  995. package/claw/node_modules/crypto-js/core.js +0 -760
  996. package/claw/node_modules/crypto-js/crypto-js.js +0 -5988
  997. package/claw/node_modules/crypto-js/docs/QuickStartGuide.wiki +0 -470
  998. package/claw/node_modules/crypto-js/enc-base64.js +0 -135
  999. package/claw/node_modules/crypto-js/enc-hex.js +0 -18
  1000. package/claw/node_modules/crypto-js/enc-latin1.js +0 -18
  1001. package/claw/node_modules/crypto-js/enc-utf16.js +0 -149
  1002. package/claw/node_modules/crypto-js/enc-utf8.js +0 -18
  1003. package/claw/node_modules/crypto-js/evpkdf.js +0 -132
  1004. package/claw/node_modules/crypto-js/format-hex.js +0 -66
  1005. package/claw/node_modules/crypto-js/format-openssl.js +0 -18
  1006. package/claw/node_modules/crypto-js/hmac-md5.js +0 -18
  1007. package/claw/node_modules/crypto-js/hmac-ripemd160.js +0 -18
  1008. package/claw/node_modules/crypto-js/hmac-sha1.js +0 -18
  1009. package/claw/node_modules/crypto-js/hmac-sha224.js +0 -18
  1010. package/claw/node_modules/crypto-js/hmac-sha256.js +0 -18
  1011. package/claw/node_modules/crypto-js/hmac-sha3.js +0 -18
  1012. package/claw/node_modules/crypto-js/hmac-sha384.js +0 -18
  1013. package/claw/node_modules/crypto-js/hmac-sha512.js +0 -18
  1014. package/claw/node_modules/crypto-js/hmac.js +0 -143
  1015. package/claw/node_modules/crypto-js/index.js +0 -18
  1016. package/claw/node_modules/crypto-js/lib-typedarrays.js +0 -76
  1017. package/claw/node_modules/crypto-js/md5.js +0 -268
  1018. package/claw/node_modules/crypto-js/mode-cfb.js +0 -78
  1019. package/claw/node_modules/crypto-js/mode-ctr-gladman.js +0 -116
  1020. package/claw/node_modules/crypto-js/mode-ctr.js +0 -58
  1021. package/claw/node_modules/crypto-js/mode-ecb.js +0 -40
  1022. package/claw/node_modules/crypto-js/mode-ofb.js +0 -54
  1023. package/claw/node_modules/crypto-js/package.json +0 -38
  1024. package/claw/node_modules/crypto-js/pad-ansix923.js +0 -49
  1025. package/claw/node_modules/crypto-js/pad-iso10126.js +0 -44
  1026. package/claw/node_modules/crypto-js/pad-iso97971.js +0 -40
  1027. package/claw/node_modules/crypto-js/pad-nopadding.js +0 -30
  1028. package/claw/node_modules/crypto-js/pad-pkcs7.js +0 -18
  1029. package/claw/node_modules/crypto-js/pad-zeropadding.js +0 -45
  1030. package/claw/node_modules/crypto-js/pbkdf2.js +0 -145
  1031. package/claw/node_modules/crypto-js/rabbit-legacy.js +0 -190
  1032. package/claw/node_modules/crypto-js/rabbit.js +0 -192
  1033. package/claw/node_modules/crypto-js/rc4.js +0 -139
  1034. package/claw/node_modules/crypto-js/ripemd160.js +0 -267
  1035. package/claw/node_modules/crypto-js/sha1.js +0 -150
  1036. package/claw/node_modules/crypto-js/sha224.js +0 -80
  1037. package/claw/node_modules/crypto-js/sha256.js +0 -199
  1038. package/claw/node_modules/crypto-js/sha3.js +0 -323
  1039. package/claw/node_modules/crypto-js/sha384.js +0 -83
  1040. package/claw/node_modules/crypto-js/sha512.js +0 -323
  1041. package/claw/node_modules/crypto-js/tripledes.js +0 -770
  1042. package/claw/node_modules/crypto-js/x64-core.js +0 -304
  1043. package/claw/node_modules/deep-equal/.editorconfig +0 -20
  1044. package/claw/node_modules/deep-equal/.eslintrc +0 -28
  1045. package/claw/node_modules/deep-equal/.nycrc +0 -17
  1046. package/claw/node_modules/deep-equal/.travis.yml +0 -12
  1047. package/claw/node_modules/deep-equal/CHANGELOG.md +0 -320
  1048. package/claw/node_modules/deep-equal/LICENSE +0 -21
  1049. package/claw/node_modules/deep-equal/assert.js +0 -3
  1050. package/claw/node_modules/deep-equal/example/cmp.js +0 -11
  1051. package/claw/node_modules/deep-equal/index.js +0 -112
  1052. package/claw/node_modules/deep-equal/lib/is_arguments.js +0 -1
  1053. package/claw/node_modules/deep-equal/lib/keys.js +0 -1
  1054. package/claw/node_modules/deep-equal/package.json +0 -109
  1055. package/claw/node_modules/deep-equal/readme.markdown +0 -73
  1056. package/claw/node_modules/deep-equal/test/_tape.js +0 -42
  1057. package/claw/node_modules/deep-equal/test/cmp.js +0 -1343
  1058. package/claw/node_modules/define-data-property/.eslintrc +0 -24
  1059. package/claw/node_modules/define-data-property/.github/FUNDING.yml +0 -12
  1060. package/claw/node_modules/define-data-property/.nycrc +0 -13
  1061. package/claw/node_modules/define-data-property/CHANGELOG.md +0 -70
  1062. package/claw/node_modules/define-data-property/LICENSE +0 -21
  1063. package/claw/node_modules/define-data-property/README.md +0 -67
  1064. package/claw/node_modules/define-data-property/index.d.ts +0 -12
  1065. package/claw/node_modules/define-data-property/index.js +0 -56
  1066. package/claw/node_modules/define-data-property/package.json +0 -106
  1067. package/claw/node_modules/define-data-property/test/index.js +0 -392
  1068. package/claw/node_modules/define-data-property/tsconfig.json +0 -59
  1069. package/claw/node_modules/define-properties/.editorconfig +0 -13
  1070. package/claw/node_modules/define-properties/.eslintrc +0 -19
  1071. package/claw/node_modules/define-properties/.github/FUNDING.yml +0 -12
  1072. package/claw/node_modules/define-properties/.nycrc +0 -9
  1073. package/claw/node_modules/define-properties/CHANGELOG.md +0 -91
  1074. package/claw/node_modules/define-properties/LICENSE +0 -21
  1075. package/claw/node_modules/define-properties/README.md +0 -84
  1076. package/claw/node_modules/define-properties/index.js +0 -47
  1077. package/claw/node_modules/define-properties/package.json +0 -88
  1078. package/claw/node_modules/dunder-proto/.eslintrc +0 -5
  1079. package/claw/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  1080. package/claw/node_modules/dunder-proto/.nycrc +0 -13
  1081. package/claw/node_modules/dunder-proto/CHANGELOG.md +0 -24
  1082. package/claw/node_modules/dunder-proto/LICENSE +0 -21
  1083. package/claw/node_modules/dunder-proto/README.md +0 -54
  1084. package/claw/node_modules/dunder-proto/get.d.ts +0 -5
  1085. package/claw/node_modules/dunder-proto/get.js +0 -30
  1086. package/claw/node_modules/dunder-proto/package.json +0 -76
  1087. package/claw/node_modules/dunder-proto/set.d.ts +0 -5
  1088. package/claw/node_modules/dunder-proto/set.js +0 -35
  1089. package/claw/node_modules/dunder-proto/test/get.js +0 -34
  1090. package/claw/node_modules/dunder-proto/test/index.js +0 -4
  1091. package/claw/node_modules/dunder-proto/test/set.js +0 -50
  1092. package/claw/node_modules/dunder-proto/tsconfig.json +0 -9
  1093. package/claw/node_modules/ecurve/.min-wd +0 -7
  1094. package/claw/node_modules/ecurve/.travis.yml +0 -14
  1095. package/claw/node_modules/ecurve/CHANGELOG.md +0 -154
  1096. package/claw/node_modules/ecurve/README.md +0 -11
  1097. package/claw/node_modules/ecurve/lib/curve.js +0 -77
  1098. package/claw/node_modules/ecurve/lib/curves.json +0 -65
  1099. package/claw/node_modules/ecurve/lib/index.js +0 -10
  1100. package/claw/node_modules/ecurve/lib/names.js +0 -21
  1101. package/claw/node_modules/ecurve/lib/point.js +0 -244
  1102. package/claw/node_modules/ecurve/package.json +0 -32
  1103. package/claw/node_modules/es-define-property/.eslintrc +0 -13
  1104. package/claw/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  1105. package/claw/node_modules/es-define-property/.nycrc +0 -9
  1106. package/claw/node_modules/es-define-property/CHANGELOG.md +0 -29
  1107. package/claw/node_modules/es-define-property/LICENSE +0 -21
  1108. package/claw/node_modules/es-define-property/README.md +0 -49
  1109. package/claw/node_modules/es-define-property/index.d.ts +0 -3
  1110. package/claw/node_modules/es-define-property/index.js +0 -14
  1111. package/claw/node_modules/es-define-property/package.json +0 -81
  1112. package/claw/node_modules/es-define-property/test/index.js +0 -56
  1113. package/claw/node_modules/es-define-property/tsconfig.json +0 -10
  1114. package/claw/node_modules/es-errors/.eslintrc +0 -5
  1115. package/claw/node_modules/es-errors/.github/FUNDING.yml +0 -12
  1116. package/claw/node_modules/es-errors/CHANGELOG.md +0 -40
  1117. package/claw/node_modules/es-errors/LICENSE +0 -21
  1118. package/claw/node_modules/es-errors/README.md +0 -55
  1119. package/claw/node_modules/es-errors/eval.d.ts +0 -3
  1120. package/claw/node_modules/es-errors/eval.js +0 -4
  1121. package/claw/node_modules/es-errors/index.d.ts +0 -3
  1122. package/claw/node_modules/es-errors/index.js +0 -4
  1123. package/claw/node_modules/es-errors/package.json +0 -80
  1124. package/claw/node_modules/es-errors/range.d.ts +0 -3
  1125. package/claw/node_modules/es-errors/range.js +0 -4
  1126. package/claw/node_modules/es-errors/ref.d.ts +0 -3
  1127. package/claw/node_modules/es-errors/ref.js +0 -4
  1128. package/claw/node_modules/es-errors/syntax.d.ts +0 -3
  1129. package/claw/node_modules/es-errors/syntax.js +0 -4
  1130. package/claw/node_modules/es-errors/test/index.js +0 -19
  1131. package/claw/node_modules/es-errors/tsconfig.json +0 -49
  1132. package/claw/node_modules/es-errors/type.d.ts +0 -3
  1133. package/claw/node_modules/es-errors/type.js +0 -4
  1134. package/claw/node_modules/es-errors/uri.d.ts +0 -3
  1135. package/claw/node_modules/es-errors/uri.js +0 -4
  1136. package/claw/node_modules/es-object-atoms/.eslintrc +0 -16
  1137. package/claw/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  1138. package/claw/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  1139. package/claw/node_modules/es-object-atoms/LICENSE +0 -21
  1140. package/claw/node_modules/es-object-atoms/README.md +0 -63
  1141. package/claw/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  1142. package/claw/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  1143. package/claw/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  1144. package/claw/node_modules/es-object-atoms/ToObject.js +0 -10
  1145. package/claw/node_modules/es-object-atoms/index.d.ts +0 -3
  1146. package/claw/node_modules/es-object-atoms/index.js +0 -4
  1147. package/claw/node_modules/es-object-atoms/isObject.d.ts +0 -3
  1148. package/claw/node_modules/es-object-atoms/isObject.js +0 -6
  1149. package/claw/node_modules/es-object-atoms/package.json +0 -80
  1150. package/claw/node_modules/es-object-atoms/test/index.js +0 -38
  1151. package/claw/node_modules/es-object-atoms/tsconfig.json +0 -6
  1152. package/claw/node_modules/for-each/.editorconfig +0 -20
  1153. package/claw/node_modules/for-each/.eslintrc +0 -30
  1154. package/claw/node_modules/for-each/.github/FUNDING.yml +0 -12
  1155. package/claw/node_modules/for-each/.github/SECURITY.md +0 -3
  1156. package/claw/node_modules/for-each/.nycrc +0 -8
  1157. package/claw/node_modules/for-each/CHANGELOG.md +0 -107
  1158. package/claw/node_modules/for-each/LICENSE +0 -22
  1159. package/claw/node_modules/for-each/README.md +0 -39
  1160. package/claw/node_modules/for-each/index.d.ts +0 -35
  1161. package/claw/node_modules/for-each/index.js +0 -69
  1162. package/claw/node_modules/for-each/package.json +0 -76
  1163. package/claw/node_modules/for-each/test/test.js +0 -224
  1164. package/claw/node_modules/for-each/tsconfig.json +0 -8
  1165. package/claw/node_modules/function-bind/.eslintrc +0 -21
  1166. package/claw/node_modules/function-bind/.github/FUNDING.yml +0 -12
  1167. package/claw/node_modules/function-bind/.github/SECURITY.md +0 -3
  1168. package/claw/node_modules/function-bind/.nycrc +0 -13
  1169. package/claw/node_modules/function-bind/CHANGELOG.md +0 -136
  1170. package/claw/node_modules/function-bind/LICENSE +0 -20
  1171. package/claw/node_modules/function-bind/README.md +0 -46
  1172. package/claw/node_modules/function-bind/implementation.js +0 -84
  1173. package/claw/node_modules/function-bind/index.js +0 -5
  1174. package/claw/node_modules/function-bind/package.json +0 -87
  1175. package/claw/node_modules/function-bind/test/.eslintrc +0 -9
  1176. package/claw/node_modules/function-bind/test/index.js +0 -252
  1177. package/claw/node_modules/functions-have-names/.editorconfig +0 -20
  1178. package/claw/node_modules/functions-have-names/.eslintrc +0 -19
  1179. package/claw/node_modules/functions-have-names/.github/FUNDING.yml +0 -12
  1180. package/claw/node_modules/functions-have-names/.nycrc +0 -9
  1181. package/claw/node_modules/functions-have-names/CHANGELOG.md +0 -89
  1182. package/claw/node_modules/functions-have-names/LICENSE +0 -21
  1183. package/claw/node_modules/functions-have-names/README.md +0 -40
  1184. package/claw/node_modules/functions-have-names/index.js +0 -31
  1185. package/claw/node_modules/functions-have-names/package.json +0 -55
  1186. package/claw/node_modules/functions-have-names/test/index.js +0 -65
  1187. package/claw/node_modules/get-intrinsic/.eslintrc +0 -42
  1188. package/claw/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  1189. package/claw/node_modules/get-intrinsic/.nycrc +0 -9
  1190. package/claw/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  1191. package/claw/node_modules/get-intrinsic/LICENSE +0 -21
  1192. package/claw/node_modules/get-intrinsic/README.md +0 -71
  1193. package/claw/node_modules/get-intrinsic/index.js +0 -378
  1194. package/claw/node_modules/get-intrinsic/package.json +0 -97
  1195. package/claw/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  1196. package/claw/node_modules/get-proto/.eslintrc +0 -10
  1197. package/claw/node_modules/get-proto/.github/FUNDING.yml +0 -12
  1198. package/claw/node_modules/get-proto/.nycrc +0 -9
  1199. package/claw/node_modules/get-proto/CHANGELOG.md +0 -21
  1200. package/claw/node_modules/get-proto/LICENSE +0 -21
  1201. package/claw/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  1202. package/claw/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  1203. package/claw/node_modules/get-proto/README.md +0 -50
  1204. package/claw/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  1205. package/claw/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  1206. package/claw/node_modules/get-proto/index.d.ts +0 -5
  1207. package/claw/node_modules/get-proto/index.js +0 -27
  1208. package/claw/node_modules/get-proto/package.json +0 -81
  1209. package/claw/node_modules/get-proto/test/index.js +0 -68
  1210. package/claw/node_modules/get-proto/tsconfig.json +0 -9
  1211. package/claw/node_modules/gopd/.eslintrc +0 -16
  1212. package/claw/node_modules/gopd/.github/FUNDING.yml +0 -12
  1213. package/claw/node_modules/gopd/CHANGELOG.md +0 -45
  1214. package/claw/node_modules/gopd/LICENSE +0 -21
  1215. package/claw/node_modules/gopd/README.md +0 -40
  1216. package/claw/node_modules/gopd/gOPD.d.ts +0 -1
  1217. package/claw/node_modules/gopd/gOPD.js +0 -4
  1218. package/claw/node_modules/gopd/index.d.ts +0 -5
  1219. package/claw/node_modules/gopd/index.js +0 -15
  1220. package/claw/node_modules/gopd/package.json +0 -77
  1221. package/claw/node_modules/gopd/test/index.js +0 -36
  1222. package/claw/node_modules/gopd/tsconfig.json +0 -9
  1223. package/claw/node_modules/has-property-descriptors/.eslintrc +0 -13
  1224. package/claw/node_modules/has-property-descriptors/.github/FUNDING.yml +0 -12
  1225. package/claw/node_modules/has-property-descriptors/.nycrc +0 -9
  1226. package/claw/node_modules/has-property-descriptors/CHANGELOG.md +0 -35
  1227. package/claw/node_modules/has-property-descriptors/LICENSE +0 -21
  1228. package/claw/node_modules/has-property-descriptors/README.md +0 -43
  1229. package/claw/node_modules/has-property-descriptors/index.js +0 -22
  1230. package/claw/node_modules/has-property-descriptors/package.json +0 -77
  1231. package/claw/node_modules/has-property-descriptors/test/index.js +0 -57
  1232. package/claw/node_modules/has-symbols/.eslintrc +0 -11
  1233. package/claw/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  1234. package/claw/node_modules/has-symbols/.nycrc +0 -9
  1235. package/claw/node_modules/has-symbols/CHANGELOG.md +0 -91
  1236. package/claw/node_modules/has-symbols/LICENSE +0 -21
  1237. package/claw/node_modules/has-symbols/README.md +0 -46
  1238. package/claw/node_modules/has-symbols/index.d.ts +0 -3
  1239. package/claw/node_modules/has-symbols/index.js +0 -14
  1240. package/claw/node_modules/has-symbols/package.json +0 -111
  1241. package/claw/node_modules/has-symbols/shams.d.ts +0 -3
  1242. package/claw/node_modules/has-symbols/shams.js +0 -45
  1243. package/claw/node_modules/has-symbols/test/index.js +0 -22
  1244. package/claw/node_modules/has-symbols/test/shams/core-js.js +0 -29
  1245. package/claw/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  1246. package/claw/node_modules/has-symbols/test/tests.js +0 -58
  1247. package/claw/node_modules/has-symbols/tsconfig.json +0 -10
  1248. package/claw/node_modules/has-tostringtag/.eslintrc +0 -5
  1249. package/claw/node_modules/has-tostringtag/.github/FUNDING.yml +0 -12
  1250. package/claw/node_modules/has-tostringtag/.nycrc +0 -13
  1251. package/claw/node_modules/has-tostringtag/CHANGELOG.md +0 -42
  1252. package/claw/node_modules/has-tostringtag/LICENSE +0 -21
  1253. package/claw/node_modules/has-tostringtag/README.md +0 -46
  1254. package/claw/node_modules/has-tostringtag/index.d.ts +0 -3
  1255. package/claw/node_modules/has-tostringtag/index.js +0 -8
  1256. package/claw/node_modules/has-tostringtag/package.json +0 -108
  1257. package/claw/node_modules/has-tostringtag/shams.d.ts +0 -3
  1258. package/claw/node_modules/has-tostringtag/shams.js +0 -8
  1259. package/claw/node_modules/has-tostringtag/test/index.js +0 -21
  1260. package/claw/node_modules/has-tostringtag/test/shams/core-js.js +0 -31
  1261. package/claw/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +0 -30
  1262. package/claw/node_modules/has-tostringtag/test/tests.js +0 -15
  1263. package/claw/node_modules/has-tostringtag/tsconfig.json +0 -49
  1264. package/claw/node_modules/hash-base/.github/FUNDING.yml +0 -12
  1265. package/claw/node_modules/hash-base/CHANGELOG.md +0 -166
  1266. package/claw/node_modules/hash-base/LICENSE +0 -21
  1267. package/claw/node_modules/hash-base/README.md +0 -48
  1268. package/claw/node_modules/hash-base/index.js +0 -109
  1269. package/claw/node_modules/hash-base/package.json +0 -64
  1270. package/claw/node_modules/hash-base/to-buffer.js +0 -20
  1271. package/claw/node_modules/hasown/.eslintrc +0 -5
  1272. package/claw/node_modules/hasown/.github/FUNDING.yml +0 -12
  1273. package/claw/node_modules/hasown/.nycrc +0 -13
  1274. package/claw/node_modules/hasown/CHANGELOG.md +0 -40
  1275. package/claw/node_modules/hasown/LICENSE +0 -21
  1276. package/claw/node_modules/hasown/README.md +0 -40
  1277. package/claw/node_modules/hasown/index.d.ts +0 -3
  1278. package/claw/node_modules/hasown/index.js +0 -8
  1279. package/claw/node_modules/hasown/package.json +0 -92
  1280. package/claw/node_modules/hasown/tsconfig.json +0 -6
  1281. package/claw/node_modules/inherits/LICENSE +0 -16
  1282. package/claw/node_modules/inherits/README.md +0 -42
  1283. package/claw/node_modules/inherits/inherits.js +0 -9
  1284. package/claw/node_modules/inherits/inherits_browser.js +0 -27
  1285. package/claw/node_modules/inherits/package.json +0 -29
  1286. package/claw/node_modules/is-arguments/.editorconfig +0 -20
  1287. package/claw/node_modules/is-arguments/.eslintrc +0 -9
  1288. package/claw/node_modules/is-arguments/.github/FUNDING.yml +0 -12
  1289. package/claw/node_modules/is-arguments/.nycrc +0 -9
  1290. package/claw/node_modules/is-arguments/CHANGELOG.md +0 -201
  1291. package/claw/node_modules/is-arguments/LICENSE +0 -20
  1292. package/claw/node_modules/is-arguments/README.md +0 -47
  1293. package/claw/node_modules/is-arguments/index.d.ts +0 -6
  1294. package/claw/node_modules/is-arguments/index.js +0 -44
  1295. package/claw/node_modules/is-arguments/package.json +0 -105
  1296. package/claw/node_modules/is-arguments/test/index.js +0 -47
  1297. package/claw/node_modules/is-arguments/tsconfig.json +0 -9
  1298. package/claw/node_modules/is-callable/.editorconfig +0 -31
  1299. package/claw/node_modules/is-callable/.eslintrc +0 -10
  1300. package/claw/node_modules/is-callable/.github/FUNDING.yml +0 -12
  1301. package/claw/node_modules/is-callable/.nycrc +0 -9
  1302. package/claw/node_modules/is-callable/CHANGELOG.md +0 -158
  1303. package/claw/node_modules/is-callable/LICENSE +0 -22
  1304. package/claw/node_modules/is-callable/README.md +0 -83
  1305. package/claw/node_modules/is-callable/index.js +0 -101
  1306. package/claw/node_modules/is-callable/package.json +0 -106
  1307. package/claw/node_modules/is-callable/test/index.js +0 -244
  1308. package/claw/node_modules/is-date-object/.editorconfig +0 -20
  1309. package/claw/node_modules/is-date-object/.eslintrc +0 -9
  1310. package/claw/node_modules/is-date-object/.github/FUNDING.yml +0 -12
  1311. package/claw/node_modules/is-date-object/.nycrc +0 -10
  1312. package/claw/node_modules/is-date-object/CHANGELOG.md +0 -134
  1313. package/claw/node_modules/is-date-object/LICENSE +0 -22
  1314. package/claw/node_modules/is-date-object/README.md +0 -52
  1315. package/claw/node_modules/is-date-object/index.d.ts +0 -3
  1316. package/claw/node_modules/is-date-object/index.js +0 -27
  1317. package/claw/node_modules/is-date-object/package.json +0 -99
  1318. package/claw/node_modules/is-date-object/test/index.js +0 -38
  1319. package/claw/node_modules/is-date-object/tsconfig.json +0 -6
  1320. package/claw/node_modules/is-regex/.editorconfig +0 -23
  1321. package/claw/node_modules/is-regex/.eslintrc +0 -10
  1322. package/claw/node_modules/is-regex/.nycrc +0 -10
  1323. package/claw/node_modules/is-regex/CHANGELOG.md +0 -233
  1324. package/claw/node_modules/is-regex/LICENSE +0 -20
  1325. package/claw/node_modules/is-regex/README.md +0 -52
  1326. package/claw/node_modules/is-regex/index.d.ts +0 -3
  1327. package/claw/node_modules/is-regex/index.js +0 -69
  1328. package/claw/node_modules/is-regex/package.json +0 -104
  1329. package/claw/node_modules/is-regex/test/index.js +0 -121
  1330. package/claw/node_modules/is-regex/tsconfig.json +0 -9
  1331. package/claw/node_modules/is-typed-array/.editorconfig +0 -20
  1332. package/claw/node_modules/is-typed-array/.eslintrc +0 -13
  1333. package/claw/node_modules/is-typed-array/.github/FUNDING.yml +0 -12
  1334. package/claw/node_modules/is-typed-array/.nycrc +0 -9
  1335. package/claw/node_modules/is-typed-array/CHANGELOG.md +0 -166
  1336. package/claw/node_modules/is-typed-array/LICENSE +0 -22
  1337. package/claw/node_modules/is-typed-array/README.md +0 -70
  1338. package/claw/node_modules/is-typed-array/index.d.ts +0 -9
  1339. package/claw/node_modules/is-typed-array/index.js +0 -8
  1340. package/claw/node_modules/is-typed-array/package.json +0 -129
  1341. package/claw/node_modules/is-typed-array/test/index.js +0 -111
  1342. package/claw/node_modules/is-typed-array/tsconfig.json +0 -6
  1343. package/claw/node_modules/isarray/.travis.yml +0 -4
  1344. package/claw/node_modules/isarray/Makefile +0 -6
  1345. package/claw/node_modules/isarray/README.md +0 -60
  1346. package/claw/node_modules/isarray/component.json +0 -19
  1347. package/claw/node_modules/isarray/index.js +0 -5
  1348. package/claw/node_modules/isarray/package.json +0 -45
  1349. package/claw/node_modules/isarray/test.js +0 -20
  1350. package/claw/node_modules/isomorphic-ws/LICENSE +0 -21
  1351. package/claw/node_modules/isomorphic-ws/README.md +0 -58
  1352. package/claw/node_modules/isomorphic-ws/browser.js +0 -17
  1353. package/claw/node_modules/isomorphic-ws/index.d.ts +0 -8
  1354. package/claw/node_modules/isomorphic-ws/node.js +0 -3
  1355. package/claw/node_modules/isomorphic-ws/package.json +0 -34
  1356. package/claw/node_modules/long/.travis.yml +0 -5
  1357. package/claw/node_modules/long/LICENSE +0 -202
  1358. package/claw/node_modules/long/README.md +0 -513
  1359. package/claw/node_modules/long/bower.json +0 -9
  1360. package/claw/node_modules/long/dist/README.md +0 -16
  1361. package/claw/node_modules/long/dist/long.js +0 -1209
  1362. package/claw/node_modules/long/dist/long.min.js +0 -20
  1363. package/claw/node_modules/long/dist/long.min.js.gz +0 -0
  1364. package/claw/node_modules/long/dist/long.min.map +0 -8
  1365. package/claw/node_modules/long/doco/INDEX.md +0 -6
  1366. package/claw/node_modules/long/doco/Long.md +0 -473
  1367. package/claw/node_modules/long/donate.png +0 -0
  1368. package/claw/node_modules/long/externs/long.js +0 -416
  1369. package/claw/node_modules/long/index.js +0 -1
  1370. package/claw/node_modules/long/jsdoc.json +0 -13
  1371. package/claw/node_modules/long/long.png +0 -0
  1372. package/claw/node_modules/long/package.json +0 -33
  1373. package/claw/node_modules/long/scripts/build.js +0 -28
  1374. package/claw/node_modules/long/src/bower.json +0 -9
  1375. package/claw/node_modules/long/src/long.js +0 -1172
  1376. package/claw/node_modules/long/src/wrap.js +0 -38
  1377. package/claw/node_modules/long/tests/goog.math.long.js +0 -807
  1378. package/claw/node_modules/long/tests/suite.js +0 -195
  1379. package/claw/node_modules/lzma/.travis.yml +0 -9
  1380. package/claw/node_modules/lzma/LICENSE +0 -20
  1381. package/claw/node_modules/lzma/THANKS +0 -7
  1382. package/claw/node_modules/lzma/bin/lzma.js +0 -362
  1383. package/claw/node_modules/lzma/index.js +0 -19
  1384. package/claw/node_modules/lzma/package.json +0 -30
  1385. package/claw/node_modules/lzma/readme.md +0 -149
  1386. package/claw/node_modules/lzma/src/lzma-c-min.js +0 -1
  1387. package/claw/node_modules/lzma/src/lzma-c.js +0 -2021
  1388. package/claw/node_modules/lzma/src/lzma-d-min.js +0 -1
  1389. package/claw/node_modules/lzma/src/lzma-d.js +0 -878
  1390. package/claw/node_modules/lzma/src/lzma-min.js +0 -2
  1391. package/claw/node_modules/lzma/src/lzma.js +0 -153
  1392. package/claw/node_modules/lzma/src/lzma_worker-min.js +0 -2
  1393. package/claw/node_modules/lzma/src/lzma_worker.js +0 -2668
  1394. package/claw/node_modules/math-intrinsics/.eslintrc +0 -16
  1395. package/claw/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  1396. package/claw/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  1397. package/claw/node_modules/math-intrinsics/LICENSE +0 -21
  1398. package/claw/node_modules/math-intrinsics/README.md +0 -50
  1399. package/claw/node_modules/math-intrinsics/abs.d.ts +0 -1
  1400. package/claw/node_modules/math-intrinsics/abs.js +0 -4
  1401. package/claw/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  1402. package/claw/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  1403. package/claw/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  1404. package/claw/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  1405. package/claw/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  1406. package/claw/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  1407. package/claw/node_modules/math-intrinsics/floor.d.ts +0 -1
  1408. package/claw/node_modules/math-intrinsics/floor.js +0 -4
  1409. package/claw/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  1410. package/claw/node_modules/math-intrinsics/isFinite.js +0 -12
  1411. package/claw/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  1412. package/claw/node_modules/math-intrinsics/isInteger.js +0 -16
  1413. package/claw/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  1414. package/claw/node_modules/math-intrinsics/isNaN.js +0 -6
  1415. package/claw/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  1416. package/claw/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  1417. package/claw/node_modules/math-intrinsics/max.d.ts +0 -1
  1418. package/claw/node_modules/math-intrinsics/max.js +0 -4
  1419. package/claw/node_modules/math-intrinsics/min.d.ts +0 -1
  1420. package/claw/node_modules/math-intrinsics/min.js +0 -4
  1421. package/claw/node_modules/math-intrinsics/mod.d.ts +0 -3
  1422. package/claw/node_modules/math-intrinsics/mod.js +0 -9
  1423. package/claw/node_modules/math-intrinsics/package.json +0 -86
  1424. package/claw/node_modules/math-intrinsics/pow.d.ts +0 -1
  1425. package/claw/node_modules/math-intrinsics/pow.js +0 -4
  1426. package/claw/node_modules/math-intrinsics/round.d.ts +0 -1
  1427. package/claw/node_modules/math-intrinsics/round.js +0 -4
  1428. package/claw/node_modules/math-intrinsics/sign.d.ts +0 -3
  1429. package/claw/node_modules/math-intrinsics/sign.js +0 -11
  1430. package/claw/node_modules/math-intrinsics/test/index.js +0 -192
  1431. package/claw/node_modules/math-intrinsics/tsconfig.json +0 -3
  1432. package/claw/node_modules/md5.js/LICENSE +0 -21
  1433. package/claw/node_modules/md5.js/README.md +0 -29
  1434. package/claw/node_modules/md5.js/index.js +0 -146
  1435. package/claw/node_modules/md5.js/package.json +0 -38
  1436. package/claw/node_modules/object-is/.eslintrc +0 -5
  1437. package/claw/node_modules/object-is/.nycrc +0 -9
  1438. package/claw/node_modules/object-is/CHANGELOG.md +0 -175
  1439. package/claw/node_modules/object-is/LICENSE +0 -20
  1440. package/claw/node_modules/object-is/README.md +0 -60
  1441. package/claw/node_modules/object-is/auto.js +0 -3
  1442. package/claw/node_modules/object-is/implementation.js +0 -19
  1443. package/claw/node_modules/object-is/index.js +0 -18
  1444. package/claw/node_modules/object-is/package.json +0 -96
  1445. package/claw/node_modules/object-is/polyfill.js +0 -7
  1446. package/claw/node_modules/object-is/shim.js +0 -14
  1447. package/claw/node_modules/object-is/test/implementation.js +0 -12
  1448. package/claw/node_modules/object-is/test/index.js +0 -12
  1449. package/claw/node_modules/object-is/test/shimmed.js +0 -28
  1450. package/claw/node_modules/object-is/test/tests.js +0 -57
  1451. package/claw/node_modules/object-keys/.editorconfig +0 -13
  1452. package/claw/node_modules/object-keys/.eslintrc +0 -17
  1453. package/claw/node_modules/object-keys/.travis.yml +0 -277
  1454. package/claw/node_modules/object-keys/CHANGELOG.md +0 -232
  1455. package/claw/node_modules/object-keys/LICENSE +0 -21
  1456. package/claw/node_modules/object-keys/README.md +0 -76
  1457. package/claw/node_modules/object-keys/implementation.js +0 -122
  1458. package/claw/node_modules/object-keys/index.js +0 -32
  1459. package/claw/node_modules/object-keys/isArguments.js +0 -17
  1460. package/claw/node_modules/object-keys/package.json +0 -88
  1461. package/claw/node_modules/object-keys/test/index.js +0 -5
  1462. package/claw/node_modules/object.assign/.editorconfig +0 -20
  1463. package/claw/node_modules/object.assign/.eslintrc +0 -28
  1464. package/claw/node_modules/object.assign/.github/FUNDING.yml +0 -12
  1465. package/claw/node_modules/object.assign/.nycrc +0 -9
  1466. package/claw/node_modules/object.assign/CHANGELOG.md +0 -246
  1467. package/claw/node_modules/object.assign/LICENSE +0 -21
  1468. package/claw/node_modules/object.assign/README.md +0 -136
  1469. package/claw/node_modules/object.assign/auto.js +0 -3
  1470. package/claw/node_modules/object.assign/dist/browser.js +0 -1304
  1471. package/claw/node_modules/object.assign/hasSymbols.js +0 -43
  1472. package/claw/node_modules/object.assign/implementation.js +0 -46
  1473. package/claw/node_modules/object.assign/index.js +0 -22
  1474. package/claw/node_modules/object.assign/package.json +0 -96
  1475. package/claw/node_modules/object.assign/polyfill.js +0 -55
  1476. package/claw/node_modules/object.assign/shim.js +0 -14
  1477. package/claw/node_modules/object.assign/test/implementation.js +0 -19
  1478. package/claw/node_modules/object.assign/test/index.js +0 -17
  1479. package/claw/node_modules/object.assign/test/native.js +0 -49
  1480. package/claw/node_modules/object.assign/test/ses-compat.js +0 -12
  1481. package/claw/node_modules/object.assign/test/shimmed.js +0 -52
  1482. package/claw/node_modules/object.assign/test/tests.js +0 -232
  1483. package/claw/node_modules/possible-typed-array-names/.eslintrc +0 -5
  1484. package/claw/node_modules/possible-typed-array-names/.github/FUNDING.yml +0 -12
  1485. package/claw/node_modules/possible-typed-array-names/CHANGELOG.md +0 -29
  1486. package/claw/node_modules/possible-typed-array-names/LICENSE +0 -21
  1487. package/claw/node_modules/possible-typed-array-names/README.md +0 -50
  1488. package/claw/node_modules/possible-typed-array-names/index.d.ts +0 -16
  1489. package/claw/node_modules/possible-typed-array-names/index.js +0 -17
  1490. package/claw/node_modules/possible-typed-array-names/package.json +0 -84
  1491. package/claw/node_modules/possible-typed-array-names/test/index.js +0 -19
  1492. package/claw/node_modules/possible-typed-array-names/tsconfig.json +0 -9
  1493. package/claw/node_modules/process-nextick-args/index.js +0 -45
  1494. package/claw/node_modules/process-nextick-args/license.md +0 -19
  1495. package/claw/node_modules/process-nextick-args/package.json +0 -25
  1496. package/claw/node_modules/process-nextick-args/readme.md +0 -18
  1497. package/claw/node_modules/readable-stream/.travis.yml +0 -34
  1498. package/claw/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  1499. package/claw/node_modules/readable-stream/GOVERNANCE.md +0 -136
  1500. package/claw/node_modules/readable-stream/LICENSE +0 -47
  1501. package/claw/node_modules/readable-stream/README.md +0 -58
  1502. package/claw/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  1503. package/claw/node_modules/readable-stream/duplex-browser.js +0 -1
  1504. package/claw/node_modules/readable-stream/duplex.js +0 -1
  1505. package/claw/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  1506. package/claw/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  1507. package/claw/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  1508. package/claw/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  1509. package/claw/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  1510. package/claw/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  1511. package/claw/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  1512. package/claw/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  1513. package/claw/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  1514. package/claw/node_modules/readable-stream/node_modules/safe-buffer/LICENSE +0 -21
  1515. package/claw/node_modules/readable-stream/node_modules/safe-buffer/README.md +0 -584
  1516. package/claw/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts +0 -187
  1517. package/claw/node_modules/readable-stream/node_modules/safe-buffer/index.js +0 -62
  1518. package/claw/node_modules/readable-stream/node_modules/safe-buffer/package.json +0 -37
  1519. package/claw/node_modules/readable-stream/package.json +0 -52
  1520. package/claw/node_modules/readable-stream/passthrough.js +0 -1
  1521. package/claw/node_modules/readable-stream/readable-browser.js +0 -7
  1522. package/claw/node_modules/readable-stream/readable.js +0 -19
  1523. package/claw/node_modules/readable-stream/transform.js +0 -1
  1524. package/claw/node_modules/readable-stream/writable-browser.js +0 -1
  1525. package/claw/node_modules/readable-stream/writable.js +0 -8
  1526. package/claw/node_modules/regexp.prototype.flags/.editorconfig +0 -13
  1527. package/claw/node_modules/regexp.prototype.flags/.eslintrc +0 -20
  1528. package/claw/node_modules/regexp.prototype.flags/.nycrc +0 -9
  1529. package/claw/node_modules/regexp.prototype.flags/CHANGELOG.md +0 -249
  1530. package/claw/node_modules/regexp.prototype.flags/LICENSE +0 -22
  1531. package/claw/node_modules/regexp.prototype.flags/README.md +0 -55
  1532. package/claw/node_modules/regexp.prototype.flags/auto.js +0 -3
  1533. package/claw/node_modules/regexp.prototype.flags/implementation.js +0 -39
  1534. package/claw/node_modules/regexp.prototype.flags/index.js +0 -18
  1535. package/claw/node_modules/regexp.prototype.flags/package.json +0 -105
  1536. package/claw/node_modules/regexp.prototype.flags/polyfill.js +0 -39
  1537. package/claw/node_modules/regexp.prototype.flags/shim.js +0 -26
  1538. package/claw/node_modules/regexp.prototype.flags/test/builtin.js +0 -46
  1539. package/claw/node_modules/regexp.prototype.flags/test/implementation.js +0 -20
  1540. package/claw/node_modules/regexp.prototype.flags/test/index.js +0 -17
  1541. package/claw/node_modules/regexp.prototype.flags/test/shimmed.js +0 -48
  1542. package/claw/node_modules/regexp.prototype.flags/test/tests.js +0 -143
  1543. package/claw/node_modules/ripemd160/.github/FUNDING.yml +0 -12
  1544. package/claw/node_modules/ripemd160/CHANGELOG.md +0 -109
  1545. package/claw/node_modules/ripemd160/LICENSE +0 -21
  1546. package/claw/node_modules/ripemd160/README.md +0 -27
  1547. package/claw/node_modules/ripemd160/index.js +0 -167
  1548. package/claw/node_modules/ripemd160/package.json +0 -64
  1549. package/claw/node_modules/safe-buffer/LICENSE +0 -21
  1550. package/claw/node_modules/safe-buffer/README.md +0 -584
  1551. package/claw/node_modules/safe-buffer/index.d.ts +0 -187
  1552. package/claw/node_modules/safe-buffer/index.js +0 -65
  1553. package/claw/node_modules/safe-buffer/package.json +0 -51
  1554. package/claw/node_modules/secure-random/CHANGELOG.md +0 -51
  1555. package/claw/node_modules/secure-random/Makefile +0 -8
  1556. package/claw/node_modules/secure-random/README.md +0 -133
  1557. package/claw/node_modules/secure-random/lib/secure-random.js +0 -83
  1558. package/claw/node_modules/secure-random/package.json +0 -45
  1559. package/claw/node_modules/set-function-length/.eslintrc +0 -27
  1560. package/claw/node_modules/set-function-length/.github/FUNDING.yml +0 -12
  1561. package/claw/node_modules/set-function-length/.nycrc +0 -13
  1562. package/claw/node_modules/set-function-length/CHANGELOG.md +0 -70
  1563. package/claw/node_modules/set-function-length/LICENSE +0 -21
  1564. package/claw/node_modules/set-function-length/README.md +0 -56
  1565. package/claw/node_modules/set-function-length/env.d.ts +0 -9
  1566. package/claw/node_modules/set-function-length/env.js +0 -25
  1567. package/claw/node_modules/set-function-length/index.d.ts +0 -7
  1568. package/claw/node_modules/set-function-length/index.js +0 -42
  1569. package/claw/node_modules/set-function-length/package.json +0 -102
  1570. package/claw/node_modules/set-function-length/tsconfig.json +0 -9
  1571. package/claw/node_modules/set-function-name/.eslintrc +0 -21
  1572. package/claw/node_modules/set-function-name/.github/FUNDING.yml +0 -12
  1573. package/claw/node_modules/set-function-name/CHANGELOG.md +0 -48
  1574. package/claw/node_modules/set-function-name/LICENSE +0 -21
  1575. package/claw/node_modules/set-function-name/README.md +0 -61
  1576. package/claw/node_modules/set-function-name/index.d.ts +0 -5
  1577. package/claw/node_modules/set-function-name/index.js +0 -23
  1578. package/claw/node_modules/set-function-name/package.json +0 -99
  1579. package/claw/node_modules/set-function-name/tsconfig.json +0 -59
  1580. package/claw/node_modules/sha.js/.eslintrc +0 -76
  1581. package/claw/node_modules/sha.js/CHANGELOG.md +0 -423
  1582. package/claw/node_modules/sha.js/LICENSE +0 -49
  1583. package/claw/node_modules/sha.js/README.md +0 -44
  1584. package/claw/node_modules/sha.js/bin.js +0 -44
  1585. package/claw/node_modules/sha.js/hash.js +0 -84
  1586. package/claw/node_modules/sha.js/index.js +0 -19
  1587. package/claw/node_modules/sha.js/package.json +0 -58
  1588. package/claw/node_modules/sha.js/sha.js +0 -104
  1589. package/claw/node_modules/sha.js/sha1.js +0 -109
  1590. package/claw/node_modules/sha.js/sha224.js +0 -55
  1591. package/claw/node_modules/sha.js/sha256.js +0 -189
  1592. package/claw/node_modules/sha.js/sha384.js +0 -59
  1593. package/claw/node_modules/sha.js/sha512.js +0 -382
  1594. package/claw/node_modules/sha.js/test/hash.js +0 -80
  1595. package/claw/node_modules/sha.js/test/test.js +0 -138
  1596. package/claw/node_modules/sha.js/test/vectors.js +0 -72
  1597. package/claw/node_modules/string_decoder/.travis.yml +0 -50
  1598. package/claw/node_modules/string_decoder/LICENSE +0 -48
  1599. package/claw/node_modules/string_decoder/README.md +0 -47
  1600. package/claw/node_modules/string_decoder/lib/string_decoder.js +0 -296
  1601. package/claw/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +0 -21
  1602. package/claw/node_modules/string_decoder/node_modules/safe-buffer/README.md +0 -584
  1603. package/claw/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +0 -187
  1604. package/claw/node_modules/string_decoder/node_modules/safe-buffer/index.js +0 -62
  1605. package/claw/node_modules/string_decoder/node_modules/safe-buffer/package.json +0 -37
  1606. package/claw/node_modules/string_decoder/package.json +0 -31
  1607. package/claw/node_modules/to-buffer/.github/FUNDING.yml +0 -12
  1608. package/claw/node_modules/to-buffer/CHANGELOG.md +0 -81
  1609. package/claw/node_modules/to-buffer/LICENSE +0 -21
  1610. package/claw/node_modules/to-buffer/README.md +0 -44
  1611. package/claw/node_modules/to-buffer/index.js +0 -109
  1612. package/claw/node_modules/to-buffer/node_modules/isarray/LICENSE +0 -21
  1613. package/claw/node_modules/to-buffer/node_modules/isarray/README.md +0 -38
  1614. package/claw/node_modules/to-buffer/node_modules/isarray/index.js +0 -5
  1615. package/claw/node_modules/to-buffer/node_modules/isarray/package.json +0 -48
  1616. package/claw/node_modules/to-buffer/package.json +0 -62
  1617. package/claw/node_modules/typed-array-buffer/.eslintrc +0 -13
  1618. package/claw/node_modules/typed-array-buffer/.github/FUNDING.yml +0 -12
  1619. package/claw/node_modules/typed-array-buffer/.nycrc +0 -13
  1620. package/claw/node_modules/typed-array-buffer/CHANGELOG.md +0 -50
  1621. package/claw/node_modules/typed-array-buffer/LICENSE +0 -21
  1622. package/claw/node_modules/typed-array-buffer/README.md +0 -42
  1623. package/claw/node_modules/typed-array-buffer/index.d.ts +0 -9
  1624. package/claw/node_modules/typed-array-buffer/index.js +0 -19
  1625. package/claw/node_modules/typed-array-buffer/package.json +0 -82
  1626. package/claw/node_modules/typed-array-buffer/test/index.js +0 -23
  1627. package/claw/node_modules/typed-array-buffer/tsconfig.json +0 -9
  1628. package/claw/node_modules/util/LICENSE +0 -18
  1629. package/claw/node_modules/util/README.md +0 -15
  1630. package/claw/node_modules/util/node_modules/inherits/LICENSE +0 -16
  1631. package/claw/node_modules/util/node_modules/inherits/README.md +0 -42
  1632. package/claw/node_modules/util/node_modules/inherits/inherits.js +0 -7
  1633. package/claw/node_modules/util/node_modules/inherits/inherits_browser.js +0 -23
  1634. package/claw/node_modules/util/node_modules/inherits/package.json +0 -29
  1635. package/claw/node_modules/util/package.json +0 -35
  1636. package/claw/node_modules/util/support/isBuffer.js +0 -3
  1637. package/claw/node_modules/util/support/isBufferBrowser.js +0 -6
  1638. package/claw/node_modules/util/util.js +0 -586
  1639. package/claw/node_modules/util-deprecate/History.md +0 -16
  1640. package/claw/node_modules/util-deprecate/LICENSE +0 -24
  1641. package/claw/node_modules/util-deprecate/README.md +0 -53
  1642. package/claw/node_modules/util-deprecate/browser.js +0 -67
  1643. package/claw/node_modules/util-deprecate/node.js +0 -6
  1644. package/claw/node_modules/util-deprecate/package.json +0 -27
  1645. package/claw/node_modules/which-typed-array/.editorconfig +0 -20
  1646. package/claw/node_modules/which-typed-array/.eslintrc +0 -10
  1647. package/claw/node_modules/which-typed-array/.github/FUNDING.yml +0 -12
  1648. package/claw/node_modules/which-typed-array/.nycrc +0 -13
  1649. package/claw/node_modules/which-typed-array/CHANGELOG.md +0 -269
  1650. package/claw/node_modules/which-typed-array/LICENSE +0 -22
  1651. package/claw/node_modules/which-typed-array/README.md +0 -70
  1652. package/claw/node_modules/which-typed-array/index.d.ts +0 -66
  1653. package/claw/node_modules/which-typed-array/index.js +0 -122
  1654. package/claw/node_modules/which-typed-array/package.json +0 -130
  1655. package/claw/node_modules/which-typed-array/test/index.js +0 -105
  1656. package/claw/node_modules/which-typed-array/tsconfig.json +0 -9
  1657. package/claw/node_modules/ws/LICENSE +0 -21
  1658. package/claw/node_modules/ws/README.md +0 -449
  1659. package/claw/node_modules/ws/browser.js +0 -8
  1660. package/claw/node_modules/ws/index.js +0 -9
  1661. package/claw/node_modules/ws/lib/buffer-util.js +0 -144
  1662. package/claw/node_modules/ws/lib/constants.js +0 -10
  1663. package/claw/node_modules/ws/lib/event-target.js +0 -170
  1664. package/claw/node_modules/ws/lib/extension.js +0 -222
  1665. package/claw/node_modules/ws/lib/permessage-deflate.js +0 -502
  1666. package/claw/node_modules/ws/lib/receiver.js +0 -492
  1667. package/claw/node_modules/ws/lib/sender.js +0 -358
  1668. package/claw/node_modules/ws/lib/validation.js +0 -30
  1669. package/claw/node_modules/ws/lib/websocket-server.js +0 -415
  1670. package/claw/node_modules/ws/lib/websocket.js +0 -895
  1671. package/claw/node_modules/ws/package.json +0 -45
  1672. package/dist/modules/logger.d.ts +0 -4
  1673. package/dist/modules/logger.d.ts.map +0 -1
  1674. package/dist/modules/logger.js +0 -5
  1675. package/dist/modules/logger.js.map +0 -1
  1676. package/dist/modules/utils/math_utils.d.ts +0 -3
  1677. package/dist/modules/utils/math_utils.d.ts.map +0 -1
  1678. package/dist/modules/utils/math_utils.js +0 -3
  1679. package/dist/modules/utils/math_utils.js.map +0 -1
@@ -0,0 +1,1240 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ import fs from 'node:fs';
4
+ import { pathToFileURL } from 'node:url';
5
+ import * as KC from '../market_adapter/core/kibana_client.js';
6
+ import * as C from '../modules/constants.js';
7
+ const { kibanaSearch, DEFAULT_CONFIG: BASE_CONFIG } = KC;
8
+ /**
9
+ * TRADE PROFITABILITY ANALYZER
10
+ *
11
+ * Fetches fill_order operations for a BitShares account from Kibana
12
+ * within a specified time range, then analyzes profitability using
13
+ * FIFO or sequential (LIFO) inventory tracking per asset pair.
14
+ *
15
+ * Usage:
16
+ * tsx analysis/trade_profitability.ts 1.2.3 --start 2025-01-01 --end 2025-06-01
17
+ * tsx analysis/trade_profitability.ts 1.2.3 --hours 720
18
+ * tsx analysis/trade_profitability.ts 1.2.3 --start 2025-01-01T00:00:00Z --end 2025-06-01T00:00:00Z
19
+ * tsx analysis/trade_profitability.ts 1.2.3 --hours 168 --asset 1.3.113
20
+ * tsx analysis/trade_profitability.ts 1.2.3 --hours 168 --csv trades.csv
21
+ * tsx analysis/trade_profitability.ts 1.2.3 --hours 168 --json results.json
22
+ * tsx analysis/trade_profitability.ts "account-name" --lookup
23
+ * tsx analysis/trade_profitability.ts 1.2.3 --hours 168 --trades
24
+ * tsx analysis/trade_profitability.ts 1.2.3 --hours 168 --match-mode fifo
25
+ */
26
+ // ─── Constants ────────────────────────────────────────────────────────────────
27
+ const OP_FILL_ORDER = 4;
28
+ const BTS_ID = '1.3.0';
29
+ let BLOCKCHAIN_FEE_PER_FILL = 0.09652; // BTS — flat blockchain operation fee (not market fee); override with --fee-per-order
30
+ const ASSETS = {
31
+ '1.3.0': { symbol: 'BTS', precision: 5 },
32
+ '1.3.118': { symbol: 'GBP', precision: 4 },
33
+ '1.3.119': { symbol: 'JPY', precision: 2 },
34
+ '1.3.120': { symbol: 'EUR', precision: 4 },
35
+ '1.3.1325': { symbol: 'RUBLE', precision: 5 },
36
+ '1.3.2512': { symbol: 'EVRAZ', precision: 4 },
37
+ '1.3.3291': { symbol: 'TWENTIX', precision: 5 },
38
+ '1.3.4099': { symbol: 'XBTSX.STH', precision: 6 },
39
+ '1.3.4156': { symbol: 'XBTSX.DOGE', precision: 5 },
40
+ '1.3.4157': { symbol: 'XBTSX.BTC', precision: 8 },
41
+ '1.3.4159': { symbol: 'XBTSX.LTC', precision: 8 },
42
+ '1.3.4176': { symbol: 'XBTSX.DASH', precision: 8 },
43
+ '1.3.4274': { symbol: 'XBTSX.BCH', precision: 8 },
44
+ '1.3.4760': { symbol: 'XBTSX.ETH', precision: 7 },
45
+ '1.3.5537': { symbol: 'IOB.XRP', precision: 4 },
46
+ '1.3.5541': { symbol: 'XBTSX.BNB', precision: 7 },
47
+ '1.3.5589': { symbol: 'XBTSX.USDT', precision: 6 },
48
+ '1.3.5641': { symbol: 'HONEST.CNY', precision: 4 },
49
+ '1.3.5649': { symbol: 'HONEST.USD', precision: 4 },
50
+ '1.3.5650': { symbol: 'HONEST.BTC', precision: 8 },
51
+ '1.3.5659': { symbol: 'HONEST.ETH', precision: 6 },
52
+ '1.3.5870': { symbol: 'XBTSX.FIL', precision: 6 },
53
+ '1.3.5887': { symbol: 'XBTSX.RUB', precision: 4 },
54
+ '1.3.5902': { symbol: 'XBTSX.USDC', precision: 6 },
55
+ '1.3.6013': { symbol: 'XBTSX.HIVE', precision: 6 },
56
+ '1.3.6124': { symbol: 'XBTSX.AVAX', precision: 6 },
57
+ '1.3.6139': { symbol: 'XBTSX.XAUT', precision: 6 },
58
+ '1.3.6166': { symbol: 'XBTSX.MATIC', precision: 5 },
59
+ '1.3.6241': { symbol: 'XBTSX.ETC', precision: 7 },
60
+ '1.3.6268': { symbol: 'BTWTY.EOS', precision: 4 },
61
+ '1.3.6301': { symbol: 'HONEST.MONEY', precision: 8 },
62
+ '1.3.6304': { symbol: 'HONEST.ADA', precision: 8 },
63
+ '1.3.6305': { symbol: 'HONEST.DOT', precision: 8 },
64
+ '1.3.6309': { symbol: 'HONEST.ATOM', precision: 8 },
65
+ '1.3.6311': { symbol: 'HONEST.ALGO', precision: 8 },
66
+ '1.3.6312': { symbol: 'HONEST.FIL', precision: 8 },
67
+ '1.3.6313': { symbol: 'HONEST.EOS', precision: 8 },
68
+ '1.3.6315': { symbol: 'HONEST.EUR', precision: 4 },
69
+ '1.3.6316': { symbol: 'HONEST.GBP', precision: 4 },
70
+ '1.3.6317': { symbol: 'HONEST.JPY', precision: 4 },
71
+ '1.3.6444': { symbol: 'IOB.XLM', precision: 4 },
72
+ '1.3.6573': { symbol: 'XBTSX.DAI', precision: 6 },
73
+ '1.3.6620': { symbol: 'XBTSX.A', precision: 6 },
74
+ '1.3.6627': { symbol: 'XBTSX.LINK', precision: 6 },
75
+ };
76
+ const resolvedPrecisions = {};
77
+ function assetSymbol(id) {
78
+ return ASSETS[id]?.symbol ?? id;
79
+ }
80
+ function assetPrec(id) {
81
+ return ASSETS[id]?.precision ?? resolvedPrecisions[id];
82
+ }
83
+ function getPrec(id) {
84
+ return assetPrec(id);
85
+ }
86
+ function toReal(amount, assetId) {
87
+ const p = getPrec(assetId);
88
+ if (p === undefined)
89
+ return NaN;
90
+ return amount / Math.pow(10, p);
91
+ }
92
+ // ─── CLI ──────────────────────────────────────────────────────────────────────
93
+ function printHelp() {
94
+ console.log(`\
95
+ Usage: tsx analysis/trade_profitability.ts <accountId> [options]
96
+
97
+ Analyzes filled orders for a BitShares account, computing realized PnL
98
+ via FIFO or sequential (LIFO) inventory tracking.
99
+
100
+ Arguments:
101
+ accountId BitShares account ID (1.2.x) or name (with --lookup)
102
+
103
+ Options:
104
+ --start <iso> Start time (ISO 8601, e.g. 2025-01-01 or 2025-01-01T00:00:00Z)
105
+ --end <iso> End time (ISO 8601)
106
+ --hours <n> Lookback hours from now (alternative to --start/--end)
107
+ --asset <assetId> Filter to one base asset (e.g. 1.3.113 for bitUSD)
108
+ --lookup Resolve account name to ID via BitShares node
109
+ --node <url> BitShares node URL (default: first healthy from built-in pool)
110
+ --csv <file> Export trade list as CSV
111
+ --json <file> Export full analysis as JSON
112
+ --trades Show per-order PnL detail (hidden by default)
113
+ --match-mode <mode> Matching mode: sequential (default, LIFO) or fifo
114
+ --fee-per-order <bts> Blockchain fee per limit_order_create op in BTS (default: 0.09652)
115
+ --verbose Print extra debug info
116
+ --help, -h Show this help
117
+
118
+ Examples:
119
+ tsx analysis/trade_profitability.ts 1.2.123456 --hours 720
120
+ tsx analysis/trade_profitability.ts 1.2.123456 --start 2025-01-01 --end 2025-06-01
121
+ tsx analysis/trade_profitability.ts "my-bot-account" --lookup --hours 168
122
+ tsx analysis/trade_profitability.ts 1.2.123456 --hours 720 --asset 1.3.113 --csv trades.csv
123
+ tsx analysis/trade_profitability.ts 1.2.123456 --hours 720 --match-mode sequential`);
124
+ }
125
+ function parseArgs() {
126
+ const args = process.argv.slice(2);
127
+ if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
128
+ printHelp();
129
+ process.exit(0);
130
+ }
131
+ const opts = {
132
+ accountId: args[0],
133
+ hours: null,
134
+ start: null,
135
+ end: null,
136
+ asset: null,
137
+ lookup: false,
138
+ node: C.NODE_MANAGEMENT.DEFAULT_NODES[0],
139
+ csv: null,
140
+ json: null,
141
+ matchMode: 'sequential',
142
+ showPnlDetail: false,
143
+ verbose: false,
144
+ feePerOrder: BLOCKCHAIN_FEE_PER_FILL,
145
+ };
146
+ for (let i = 1; i < args.length; i++) {
147
+ switch (args[i]) {
148
+ case '--hours':
149
+ opts.hours = parseInt(args[++i], 10);
150
+ break;
151
+ case '--start':
152
+ opts.start = args[++i];
153
+ break;
154
+ case '--end':
155
+ opts.end = args[++i];
156
+ break;
157
+ case '--asset':
158
+ opts.asset = args[++i];
159
+ break;
160
+ case '--lookup':
161
+ opts.lookup = true;
162
+ break;
163
+ case '--node':
164
+ opts.node = args[++i];
165
+ break;
166
+ case '--csv':
167
+ opts.csv = args[++i];
168
+ break;
169
+ case '--json':
170
+ opts.json = args[++i];
171
+ break;
172
+ case '--trades':
173
+ opts.showPnlDetail = true;
174
+ break;
175
+ case '--fee-per-order':
176
+ opts.feePerOrder = parseFloat(args[++i]);
177
+ break;
178
+ case '--match-mode': {
179
+ const m = args[++i];
180
+ if (m !== 'sequential' && m !== 'fifo') {
181
+ console.error(`Invalid --match-mode: ${m} (expected: sequential | fifo)`);
182
+ process.exit(1);
183
+ }
184
+ opts.matchMode = m;
185
+ break;
186
+ }
187
+ case '--verbose':
188
+ opts.verbose = true;
189
+ break;
190
+ default:
191
+ console.error(`Unknown option: ${args[i]}`);
192
+ process.exit(1);
193
+ }
194
+ }
195
+ if (!opts.hours && !opts.start) {
196
+ opts.hours = 168; // default: 7 days
197
+ }
198
+ return opts;
199
+ }
200
+ // ─── Account name resolution ─────────────────────────────────────────────────
201
+ async function resolveAccountId(name, nodeUrl) {
202
+ const { createReadOnlyClient } = await import('../modules/bitshares-native/index.js');
203
+ const client = createReadOnlyClient({ nodes: [nodeUrl] });
204
+ // Suppress transport INFO logs during ephemeral connection:
205
+ // bitshares-native transport logger (new Logger('Transport')) writes
206
+ // "[timestamp] [INFO] [Transport] ..." — silence by raising log level.
207
+ const prevLevel = process.env.LOG_LEVEL;
208
+ process.env.LOG_LEVEL = 'warn';
209
+ try {
210
+ await client.connect();
211
+ const accounts = await client.db('lookup_account_names', [[name]]);
212
+ if (Array.isArray(accounts) && accounts[0]?.id) {
213
+ return accounts[0].id;
214
+ }
215
+ return null;
216
+ }
217
+ catch (e) {
218
+ console.warn(` [warn] Account resolution failed: ${e.message}`);
219
+ return null;
220
+ }
221
+ finally {
222
+ try {
223
+ client.disconnect();
224
+ }
225
+ catch (_) { }
226
+ process.env.LOG_LEVEL = prevLevel;
227
+ }
228
+ }
229
+ // ─── On-chain asset precision resolution ────────────────────────────────────
230
+ /**
231
+ * Collects all unique non-BTS asset IDs from fills, resolves unknown
232
+ * precisions from the blockchain, and populates the runtime cache.
233
+ */
234
+ async function resolveAssetPrecisions(fills, nodeUrl) {
235
+ const unknownIds = new Set();
236
+ for (const f of fills) {
237
+ for (const id of [f.pays.asset_id, f.receives.asset_id, f.fee.asset_id]) {
238
+ if (id !== BTS_ID && !(id in ASSETS) && !(id in resolvedPrecisions)) {
239
+ unknownIds.add(id);
240
+ }
241
+ }
242
+ }
243
+ if (unknownIds.size === 0 || !nodeUrl)
244
+ return;
245
+ const ids = [...unknownIds];
246
+ console.log(` Resolving ${ids.length} unknown asset(s) from blockchain...`);
247
+ const { createReadOnlyClient } = await import('../modules/bitshares-native/index.js');
248
+ const client = createReadOnlyClient({ nodes: [nodeUrl] });
249
+ try {
250
+ await client.connect();
251
+ const assets = await client.db('get_assets', [ids]);
252
+ if (Array.isArray(assets)) {
253
+ for (const asset of assets) {
254
+ if (asset?.id && asset.precision != null) {
255
+ resolvedPrecisions[asset.id] = asset.precision;
256
+ console.log(` ${asset.id} → ${asset.symbol || '?'} (precision ${asset.precision})`);
257
+ }
258
+ }
259
+ }
260
+ const missing = ids.filter(id => !(id in resolvedPrecisions));
261
+ if (missing.length > 0) {
262
+ console.warn(` [warn] ${missing.length} asset(s) not found on chain: ${missing.join(', ')}. Fills referencing them will be skipped.`);
263
+ }
264
+ }
265
+ catch (e) {
266
+ console.warn(` [warn] Asset resolution failed: ${e.message}. Fills with unknown assets will be skipped.`);
267
+ }
268
+ finally {
269
+ try {
270
+ client.disconnect();
271
+ }
272
+ catch (_) { }
273
+ }
274
+ }
275
+ // ─── Kibana Query ────────────────────────────────────────────────────────────
276
+ function buildFillQuery(accountId, gte, lte, size) {
277
+ return {
278
+ size,
279
+ track_total_hits: false,
280
+ _source: [
281
+ 'block_data.block_time',
282
+ 'block_data.block_num',
283
+ 'operation_id_num',
284
+ 'operation_history.op_object.pays',
285
+ 'operation_history.op_object.receives',
286
+ 'operation_history.op_object.fee',
287
+ 'operation_history.op_object.order_id',
288
+ 'operation_history.op_object.account_id',
289
+ 'operation_history.op_object.is_maker',
290
+ ],
291
+ query: {
292
+ bool: {
293
+ filter: [
294
+ { term: { operation_type: OP_FILL_ORDER } },
295
+ { term: { 'operation_history.op_object.account_id.keyword': accountId } },
296
+ { range: { 'block_data.block_time': { gte, lte } } },
297
+ ],
298
+ },
299
+ },
300
+ sort: [
301
+ { 'block_data.block_time': { order: 'asc' } },
302
+ { operation_id_num: { order: 'asc' } },
303
+ ],
304
+ };
305
+ }
306
+ async function fetchAllFills(config, accountId, gte, lte) {
307
+ const pageSize = 10000;
308
+ const fills = [];
309
+ let searchAfter = null;
310
+ const cfg = { ...BASE_CONFIG, timeout: 60000, ...config };
311
+ while (true) {
312
+ const query = buildFillQuery(accountId, gte, lte, pageSize);
313
+ if (searchAfter)
314
+ query.search_after = searchAfter;
315
+ const result = await kibanaSearch(cfg, query);
316
+ const hits = result?.hits?.hits ?? [];
317
+ if (!hits.length)
318
+ break;
319
+ for (const hit of hits) {
320
+ const src = hit?._source;
321
+ const op = src?.operation_history?.op_object;
322
+ if (!op || !op.pays || !op.receives)
323
+ continue;
324
+ fills.push({
325
+ time: src.block_data?.block_time ?? '',
326
+ blockNum: src.block_data?.block_num ?? 0,
327
+ opNum: Number(src.operation_id_num ?? 0),
328
+ orderId: op.order_id ?? '',
329
+ accountId: op.account_id ?? '',
330
+ pays: { amount: Number(op.pays.amount ?? 0), asset_id: op.pays.asset_id ?? '' },
331
+ receives: { amount: Number(op.receives.amount ?? 0), asset_id: op.receives.asset_id ?? '' },
332
+ fee: { amount: Number(op.fee?.amount ?? 0), asset_id: op.fee?.asset_id ?? '' },
333
+ isMaker: op.is_maker ?? false,
334
+ sort: hit.sort,
335
+ });
336
+ }
337
+ if (hits.length < pageSize)
338
+ break;
339
+ searchAfter = hits[hits.length - 1].sort;
340
+ if (!Array.isArray(searchAfter))
341
+ break;
342
+ }
343
+ return fills;
344
+ }
345
+ // ─── Fill Classification ─────────────────────────────────────────────────────
346
+ function classifyFills(fills, filterAsset) {
347
+ const trades = [];
348
+ const pairs = new Set();
349
+ let skipped = 0;
350
+ for (const f of fills) {
351
+ const pAsset = f.pays.asset_id;
352
+ const rAsset = f.receives.asset_id;
353
+ let direction;
354
+ let baseAsset;
355
+ let quoteAsset;
356
+ let baseAmount;
357
+ let quoteAmount;
358
+ let price;
359
+ let marketFeeReal;
360
+ let marketFeeAsset;
361
+ const feePrec = getPrec(f.fee.asset_id);
362
+ if (feePrec === undefined || isNaN(f.fee.amount)) {
363
+ skipped++;
364
+ continue;
365
+ }
366
+ const feeReal = f.fee.amount / Math.pow(10, feePrec);
367
+ if (pAsset === BTS_ID && rAsset !== BTS_ID) {
368
+ direction = 'buy';
369
+ baseAsset = rAsset;
370
+ quoteAsset = BTS_ID;
371
+ baseAmount = toReal(f.receives.amount, rAsset);
372
+ quoteAmount = toReal(f.pays.amount, BTS_ID);
373
+ if (isNaN(baseAmount) || isNaN(quoteAmount)) {
374
+ skipped++;
375
+ continue;
376
+ }
377
+ price = quoteAmount / baseAmount;
378
+ marketFeeReal = feeReal;
379
+ marketFeeAsset = f.fee.asset_id;
380
+ }
381
+ else if (rAsset === BTS_ID && pAsset !== BTS_ID) {
382
+ direction = 'sell';
383
+ baseAsset = pAsset;
384
+ quoteAsset = BTS_ID;
385
+ baseAmount = toReal(f.pays.amount, pAsset);
386
+ quoteAmount = toReal(f.receives.amount, BTS_ID);
387
+ if (isNaN(baseAmount) || isNaN(quoteAmount)) {
388
+ skipped++;
389
+ continue;
390
+ }
391
+ price = quoteAmount / baseAmount;
392
+ marketFeeReal = feeReal;
393
+ marketFeeAsset = f.fee.asset_id;
394
+ }
395
+ else {
396
+ // Non-BTS cross-pair: use consistent ordering (lower asset ID = base)
397
+ const baseForCheck = pAsset < rAsset ? pAsset : rAsset;
398
+ const quoteForCheck = pAsset < rAsset ? rAsset : pAsset;
399
+ // Skip if either asset precision is unknown
400
+ if (getPrec(baseForCheck) === undefined || getPrec(quoteForCheck) === undefined) {
401
+ skipped++;
402
+ continue;
403
+ }
404
+ const isSell = pAsset < rAsset;
405
+ direction = isSell ? 'sell' : 'buy';
406
+ baseAsset = isSell ? pAsset : rAsset;
407
+ quoteAsset = isSell ? rAsset : pAsset;
408
+ baseAmount = toReal(isSell ? f.pays.amount : f.receives.amount, baseAsset);
409
+ quoteAmount = toReal(isSell ? f.receives.amount : f.pays.amount, quoteAsset);
410
+ if (isNaN(baseAmount) || isNaN(quoteAmount)) {
411
+ skipped++;
412
+ continue;
413
+ }
414
+ price = quoteAmount / baseAmount;
415
+ marketFeeReal = feeReal;
416
+ marketFeeAsset = f.fee.asset_id;
417
+ }
418
+ if (filterAsset && baseAsset !== filterAsset)
419
+ continue;
420
+ // Validate market fee asset: fee is always deducted from receives
421
+ // (base for buys, quote for sells). Warn if unexpected.
422
+ if (marketFeeReal > 0 && marketFeeAsset !== '' && marketFeeAsset !== rAsset) {
423
+ console.warn(` [warn] Fill ${f.orderId}: fee asset ${marketFeeAsset} ≠ receives asset ${rAsset}. Market fee PnL may be incorrect.`);
424
+ }
425
+ const pairKey = `${baseAsset}:${quoteAsset}`;
426
+ pairs.add(pairKey);
427
+ trades.push({
428
+ time: f.time,
429
+ orderId: f.orderId,
430
+ direction,
431
+ baseAsset,
432
+ quoteAsset,
433
+ baseAmount,
434
+ quoteAmount,
435
+ price,
436
+ isMaker: f.isMaker,
437
+ sequence: f.blockNum * 1e6 + f.opNum,
438
+ marketFeeReal,
439
+ marketFeeAsset,
440
+ });
441
+ }
442
+ if (skipped > 0) {
443
+ console.warn(` [warn] ${skipped} fill(s) skipped due to unknown asset precision.`);
444
+ }
445
+ return { trades, pairs };
446
+ }
447
+ // ─── PnL Calculation (FIFO / Sequential) ─────────────────────────────────────
448
+ function analyzePair(trades, matchMode = 'sequential') {
449
+ const buys = trades.filter(t => t.direction === 'buy').sort((a, b) => a.sequence - b.sequence);
450
+ const sells = trades.filter(t => t.direction === 'sell').sort((a, b) => a.sequence - b.sequence);
451
+ const totalBuyBase = buys.reduce((s, t) => s + t.baseAmount, 0);
452
+ const totalSellBase = sells.reduce((s, t) => s + t.baseAmount, 0);
453
+ const totalBuyQuote = buys.reduce((s, t) => s + t.quoteAmount, 0);
454
+ const totalSellQuote = sells.reduce((s, t) => s + t.quoteAmount, 0);
455
+ // Merge all trades chronologically.
456
+ // FIFO: buys add to queue, sells consume oldest lots (queue front).
457
+ // Sequential: buys add to queue, sells consume newest lots (queue back / LIFO).
458
+ const all = [...trades].sort((a, b) => a.sequence - b.sequence);
459
+ const inventory = [];
460
+ const realizedPnls = [];
461
+ let unmatchedSellBase = 0;
462
+ for (const trade of all) {
463
+ const grossPrice = trade.price;
464
+ if (trade.direction === 'buy') {
465
+ // Enter lot with net amount (gross receives minus market fee on receives)
466
+ const lotAmount = trade.baseAmount - trade.marketFeeReal;
467
+ if (lotAmount < 1e-12)
468
+ continue;
469
+ const lotEffPrice = trade.quoteAmount / lotAmount;
470
+ inventory.push({
471
+ amount: lotAmount,
472
+ grossPrice: grossPrice,
473
+ effPrice: lotEffPrice,
474
+ time: trade.time,
475
+ entryOrderId: trade.orderId,
476
+ entryIsMaker: trade.isMaker,
477
+ });
478
+ }
479
+ else {
480
+ let remaining = trade.baseAmount;
481
+ while (remaining > 0.00000001 && inventory.length > 0) {
482
+ const lotIndex = matchMode === 'sequential' ? inventory.length - 1 : 0;
483
+ const lot = inventory[lotIndex];
484
+ const matched = Math.min(remaining, lot.amount);
485
+ // Gross PnL using gross prices (before market fee deduction)
486
+ const grossPnl = (grossPrice - lot.grossPrice) * matched;
487
+ const grossPnlPct = lot.grossPrice > 0 ? ((grossPrice - lot.grossPrice) / lot.grossPrice) * 100 : 0;
488
+ realizedPnls.push({
489
+ sellPrice: grossPrice,
490
+ buyPrice: lot.grossPrice,
491
+ amount: matched,
492
+ pnl: grossPnl,
493
+ pnlPct: grossPnlPct,
494
+ effPrice: lot.effPrice,
495
+ marketFeeEntry: 0,
496
+ marketFeeExit: 0,
497
+ feeBts: 0,
498
+ pnlNet: grossPnl,
499
+ pnlNetPct: grossPnlPct,
500
+ entryTime: lot.time,
501
+ exitTime: trade.time,
502
+ entryOrderId: lot.entryOrderId,
503
+ exitOrderId: trade.orderId,
504
+ entryIsMaker: lot.entryIsMaker,
505
+ exitIsMaker: trade.isMaker,
506
+ });
507
+ lot.amount -= matched;
508
+ remaining -= matched;
509
+ if (lot.amount < 0.00000001) {
510
+ if (matchMode === 'sequential') {
511
+ inventory.pop();
512
+ }
513
+ else {
514
+ inventory.shift();
515
+ }
516
+ }
517
+ }
518
+ if (remaining > 0.00000001) {
519
+ unmatchedSellBase += remaining;
520
+ }
521
+ }
522
+ }
523
+ // ─── Market fee allocation (aggregated per order) ──────────────────────
524
+ // A limit order may be filled across multiple fill_order_operations with
525
+ // the same orderId. Aggregate all fills' market fees per order, then
526
+ // allocate pro-rata using the fill's net acquired amount as denominator.
527
+ // (Market fee is paid on acquisition; the portion tied to unsold inventory
528
+ // is not yet realised.)
529
+ const entryOrderFees = new Map();
530
+ const exitOrderFees = new Map();
531
+ for (const t of buys) {
532
+ const e = entryOrderFees.get(t.orderId) || { feeInQuote: 0, totalAcquired: 0 };
533
+ if (t.marketFeeReal > 0) {
534
+ // Buy-side fee is in base → convert to quote using effective price
535
+ const netBase = t.baseAmount - t.marketFeeReal;
536
+ e.feeInQuote += netBase > 0 ? t.marketFeeReal * (t.quoteAmount / netBase) : 0;
537
+ }
538
+ e.totalAcquired += t.baseAmount - t.marketFeeReal;
539
+ entryOrderFees.set(t.orderId, e);
540
+ }
541
+ for (const t of sells) {
542
+ const e = exitOrderFees.get(t.orderId) || { feeInQuote: 0, totalDisposed: 0 };
543
+ if (t.marketFeeReal > 0)
544
+ e.feeInQuote += t.marketFeeReal; // Sell-side fee is already in quote
545
+ e.totalDisposed += t.baseAmount;
546
+ exitOrderFees.set(t.orderId, e);
547
+ }
548
+ for (const r of realizedPnls) {
549
+ const eObj = entryOrderFees.get(r.entryOrderId);
550
+ if (eObj && eObj.totalAcquired > 0)
551
+ r.marketFeeEntry = eObj.feeInQuote * (r.amount / eObj.totalAcquired);
552
+ const xObj = exitOrderFees.get(r.exitOrderId);
553
+ if (xObj && xObj.totalDisposed > 0)
554
+ r.marketFeeExit = xObj.feeInQuote * (r.amount / xObj.totalDisposed);
555
+ r.pnlNet = r.pnl - r.marketFeeEntry - r.marketFeeExit;
556
+ r.pnlNetPct = r.buyPrice > 0 ? (r.pnlNet / (r.buyPrice * r.amount)) * 100 : 0;
557
+ }
558
+ // ─── Blockchain fee allocation ─────────────────────────────────────────
559
+ const buyOrderIds = new Set(buys.map(t => t.orderId));
560
+ const sellOrderIds = new Set(sells.map(t => t.orderId));
561
+ const entryTotalMatched = new Map();
562
+ const exitTotalMatched = new Map();
563
+ for (const r of realizedPnls) {
564
+ entryTotalMatched.set(r.entryOrderId, (entryTotalMatched.get(r.entryOrderId) || 0) + r.amount);
565
+ exitTotalMatched.set(r.exitOrderId, (exitTotalMatched.get(r.exitOrderId) || 0) + r.amount);
566
+ }
567
+ const totalBlockchainFees = (buyOrderIds.size + sellOrderIds.size) * BLOCKCHAIN_FEE_PER_FILL;
568
+ for (const r of realizedPnls) {
569
+ const eTotal = entryTotalMatched.get(r.entryOrderId) || 1;
570
+ const xTotal = exitTotalMatched.get(r.exitOrderId) || 1;
571
+ r.feeBts = BLOCKCHAIN_FEE_PER_FILL * (r.amount / eTotal) + BLOCKCHAIN_FEE_PER_FILL * (r.amount / xTotal);
572
+ r.pnlNet -= r.feeBts;
573
+ const costBasis = r.effPrice * r.amount;
574
+ r.pnlNetPct = costBasis > 0 ? (r.pnlNet / costBasis) * 100 : 0;
575
+ }
576
+ const totalBuyBaseNet = buys.reduce((s, t) => s + t.baseAmount - t.marketFeeReal, 0);
577
+ const totalRealizedPnl = realizedPnls.reduce((s, r) => s + r.pnl, 0);
578
+ const totalMarketFees = realizedPnls.reduce((s, r) => s + r.marketFeeEntry + r.marketFeeExit, 0);
579
+ const totalRealizedPnlNet = realizedPnls.reduce((s, r) => s + r.pnlNet, 0);
580
+ const netPosition = totalBuyBaseNet - totalSellBase;
581
+ const baseAsset = trades[0]?.baseAsset ?? '';
582
+ const quoteAsset = trades[0]?.quoteAsset ?? '';
583
+ return {
584
+ baseAsset,
585
+ quoteAsset,
586
+ buys,
587
+ sells,
588
+ realizedPnls,
589
+ totalBuyBase,
590
+ totalSellBase,
591
+ totalBuyQuote,
592
+ totalSellQuote,
593
+ unmatchedSellBase,
594
+ totalRealizedPnl,
595
+ totalMarketFees,
596
+ totalBlockchainFees,
597
+ totalRealizedPnlNet,
598
+ netPosition,
599
+ };
600
+ }
601
+ // ─── Output Helpers ──────────────────────────────────────────────────────────
602
+ function fmt(n, decimals = 4) {
603
+ if (!Number.isFinite(n))
604
+ return 'NaN';
605
+ return n.toLocaleString('en-US', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
606
+ }
607
+ function fmtPct(n) {
608
+ if (!Number.isFinite(n))
609
+ return 'NaN%';
610
+ return (n >= 0 ? '+' : '') + n.toFixed(2) + '%';
611
+ }
612
+ function fmtAsset(id) {
613
+ return assetSymbol(id);
614
+ }
615
+ function printSummary(pairs, _accountId, _start, _end, _matchMode = 'sequential') {
616
+ console.log('');
617
+ for (const pair of pairs) {
618
+ const pairLabel = `${fmtAsset(pair.baseAsset)}/${fmtAsset(pair.quoteAsset)}`;
619
+ const totalBought = pair.totalBuyBase;
620
+ const totalSold = pair.totalSellBase;
621
+ const avgBuy = pair.totalBuyBase > 0 ? pair.totalBuyQuote / pair.totalBuyBase : 0;
622
+ const avgSell = pair.totalSellBase > 0 ? pair.totalSellQuote / pair.totalSellBase : 0;
623
+ console.log(` ── ${pairLabel}`);
624
+ console.log(` Buys: ${fmt(totalBought, 4)} @ ${fmt(avgBuy, 6)} = ${fmt(pair.totalBuyQuote, 4)} ${fmtAsset(pair.quoteAsset)}`);
625
+ console.log(` Sells: ${fmt(totalSold, 4)} @ ${fmt(avgSell, 6)} = ${fmt(pair.totalSellQuote, 4)} ${fmtAsset(pair.quoteAsset)}`);
626
+ console.log(` Net traded: ${fmt(pair.netPosition, 4)} ${fmtAsset(pair.baseAsset)} (window flow)`);
627
+ console.log(` Trades: ${pair.realizedPnls.length} matched lots, ${pair.buys.length} buys, ${pair.sells.length} sells`);
628
+ if (pair.unmatchedSellBase > 0.0001) {
629
+ console.log(` Unmatched: ${fmt(pair.unmatchedSellBase, 4)} ${fmtAsset(pair.baseAsset)} (sold without prior buy in window — expected if inventory predates window)`);
630
+ }
631
+ console.log(` Gross PnL: ${fmtAsset(pair.quoteAsset)} ${fmt(pair.totalRealizedPnl, 4)}`);
632
+ const mktFee = pair.totalMarketFees;
633
+ const blkFee = pair.totalBlockchainFees;
634
+ if (mktFee > 0.0001) {
635
+ console.log(` Market fees: ${fmtAsset(pair.quoteAsset)} ${fmt(-mktFee, 4)}`);
636
+ }
637
+ if (blkFee > 0.0001) {
638
+ console.log(` Blockchain: BTS ${fmt(-blkFee, 4)}`);
639
+ }
640
+ console.log(` Net PnL: ${fmtAsset(pair.quoteAsset)} ${fmt(pair.totalRealizedPnlNet, 4)}`);
641
+ if (pair.quoteAsset !== BTS_ID) {
642
+ console.log(` ⚠ Non-BTS quote — PnL is in ${fmtAsset(pair.quoteAsset)}, not BTS`);
643
+ }
644
+ console.log('');
645
+ }
646
+ // Grand totals grouped by quote asset
647
+ const quoteGroups = new Map();
648
+ for (const p of pairs) {
649
+ const q = p.quoteAsset;
650
+ if (!quoteGroups.has(q))
651
+ quoteGroups.set(q, []);
652
+ quoteGroups.get(q).push(p);
653
+ }
654
+ if (pairs.length > 1 && quoteGroups.size > 0) {
655
+ for (const [quoteAsset, group] of quoteGroups) {
656
+ const groupPnl = group.reduce((s, p) => s + p.totalRealizedPnl, 0);
657
+ const groupMktFees = group.reduce((s, p) => s + p.totalMarketFees, 0);
658
+ const groupBlkFees = group.reduce((s, p) => s + p.totalBlockchainFees, 0);
659
+ const groupNet = group.reduce((s, p) => s + p.totalRealizedPnlNet, 0);
660
+ const groupVol = group.reduce((s, p) => s + p.totalBuyQuote + p.totalSellQuote, 0);
661
+ const qSymbol = fmtAsset(quoteAsset);
662
+ console.log(` ── TOTAL (${qSymbol}) — ${group.length} pair(s)`);
663
+ console.log(` Gross PnL: ${fmtAsset(quoteAsset)} ${fmt(groupPnl, 4)}`);
664
+ if (groupMktFees > 0.0001) {
665
+ console.log(` Market fees: ${fmtAsset(quoteAsset)} ${fmt(-groupMktFees, 4)}`);
666
+ }
667
+ if (groupBlkFees > 0.0001) {
668
+ console.log(` Blockchain: BTS ${fmt(-groupBlkFees, 4)}`);
669
+ }
670
+ console.log(` Net PnL: ${fmtAsset(quoteAsset)} ${fmt(groupNet, 4)}`);
671
+ console.log(` Volume: ${fmt(groupVol, 4)} ${qSymbol}`);
672
+ console.log('');
673
+ }
674
+ }
675
+ console.log(` Note: PnL uses gross prices. Net PnL deducts market fees (charged by`);
676
+ console.log(` asset issuer on receives, both issuer and network portions) and`);
677
+ console.log(` blockchain operation fees (BTS per limit_order_create). Market`);
678
+ console.log(` fees are converted to quote asset. Buy lots are entered at net`);
679
+ console.log(` receives (gross minus buy-side market fee) so inventory matching`);
680
+ console.log(` reflects what the account actually held. If inventory predates the`);
681
+ console.log(` window or crosses asset pairs, the matched lots may not reflect`);
682
+ console.log(` true trade economics.`);
683
+ console.log('');
684
+ }
685
+ function printPnlDetail(pairs) {
686
+ for (const pair of pairs) {
687
+ if (pair.realizedPnls.length === 0)
688
+ continue;
689
+ const pairLabel = `${fmtAsset(pair.baseAsset)}/${fmtAsset(pair.quoteAsset)}`;
690
+ console.log('');
691
+ console.log(` ── ${pairLabel} — Realized PnL Detail`);
692
+ console.log('');
693
+ const hdr = ' # Buy Price EffBuy Sell Price Amount PnL PnL% MktFee OpFeeBTS Net PnL Net% Legs Entry Time Exit Time';
694
+ console.log(hdr);
695
+ console.log(' ' + '─'.repeat(hdr.length - 1));
696
+ for (let i = 0; i < pair.realizedPnls.length; i++) {
697
+ const r = pair.realizedPnls[i];
698
+ const idx = String(i + 1).padStart(2);
699
+ const bp = fmt(r.buyPrice, 8).padStart(11);
700
+ const ep = fmt(r.effPrice, 8).padStart(11);
701
+ const sp = fmt(r.sellPrice, 8).padStart(11);
702
+ const amt = fmt(r.amount, 4).padStart(9);
703
+ const pnlStr = fmt(r.pnl, 6).padStart(9);
704
+ const pctStr = fmtPct(r.pnlPct).padStart(8);
705
+ const mktFeeStr = fmt(r.marketFeeEntry + r.marketFeeExit, 4).padStart(8);
706
+ const feeStr = fmt(r.feeBts, 4).padStart(8);
707
+ const netStr = fmt(r.pnlNet, 6).padStart(10);
708
+ const netPctStr = fmtPct(r.pnlNetPct).padStart(8);
709
+ const mk = (r.entryIsMaker ? 'M' : 'T') + '/' + (r.exitIsMaker ? 'M' : 'T') + ' ';
710
+ const et = (r.entryTime || '').slice(0, 22).padEnd(22);
711
+ const xt = (r.exitTime || '').slice(0, 22).padEnd(22);
712
+ console.log(` ${idx} ${bp} ${ep} ${sp} ${amt} ${pnlStr} ${pctStr} ${mktFeeStr} ${feeStr} ${netStr} ${netPctStr} ${mk} ${et} ${xt}`);
713
+ }
714
+ console.log('');
715
+ }
716
+ }
717
+ function percentile(sorted, p) {
718
+ const n = sorted.length;
719
+ if (n === 0)
720
+ return 0;
721
+ if (n === 1)
722
+ return sorted[0];
723
+ const k = (p / 100) * (n - 1);
724
+ const f = Math.floor(k);
725
+ const c = Math.ceil(k);
726
+ if (f === c)
727
+ return sorted[f];
728
+ return sorted[f] * (c - k) + sorted[c] * (k - f);
729
+ }
730
+ function computeMetrics(pair) {
731
+ const pnls = pair.realizedPnls;
732
+ const total = pnls.length;
733
+ if (total === 0) {
734
+ return {
735
+ totalLots: 0, winRate: 0, profitFactor: 0,
736
+ avgWin: 0, avgLoss: 0, avgWinLossRatio: 0,
737
+ expectancyBts: 0, expectancyPct: 0, expectancyR: 0,
738
+ netExpectancyBts: 0,
739
+ dailyPnlRatio: 0, dailyDownsideRatio: 0,
740
+ maxConsecWins: 0, maxConsecLosses: 0,
741
+ avgHoldHours: 0, limitOrderRatio: 0,
742
+ bestTradePct: 0, worstTradePct: 0,
743
+ mddPct: 0,
744
+ mddHadStablePeak: false,
745
+ isOngoingRecovery: false,
746
+ currentDrawdownDays: 0,
747
+ medianPnlPct: 0, p25PnlPct: 0, p75PnlPct: 0,
748
+ feeDragPct: 0, maxRecoveryDays: 0,
749
+ medianR: 0, pctRGreater1: 0, pctRGreater2: 0, pctRLessNeg1: 0,
750
+ sellOrdersFilled: 0, fillsPerOrderMean: 0, fillsPerOrderMedian: 0,
751
+ fillsPerOrderMax: 0, oneShotOrderRatio: 0, fillsPerDay: 0, avgVolumePerDay: 0,
752
+ };
753
+ }
754
+ const wins = pnls.filter(r => r.pnl > 0);
755
+ const losses = pnls.filter(r => r.pnl < 0);
756
+ const winRate = wins.length / total;
757
+ const makerEntryCount = pnls.filter(r => r.entryIsMaker).length;
758
+ const makerExitCount = pnls.filter(r => r.exitIsMaker).length;
759
+ const totalMakerLegs = makerEntryCount + makerExitCount;
760
+ const grossProfit = wins.reduce((s, r) => s + r.pnl, 0);
761
+ const grossLoss = Math.abs(losses.reduce((s, r) => s + r.pnl, 0));
762
+ const profitFactor = grossLoss > 0 ? grossProfit / grossLoss : grossProfit > 0 ? Infinity : 0;
763
+ const totalFeeDrag = pair.totalMarketFees + pair.totalBlockchainFees;
764
+ const feeDragPct = grossProfit > 0 ? (totalFeeDrag / grossProfit) * 100 : 0;
765
+ const avgWin = wins.length > 0 ? grossProfit / wins.length : 0;
766
+ const avgLoss = losses.length > 0 ? losses.reduce((s, r) => s + r.pnl, 0) / losses.length : 0;
767
+ const avgWinPct = wins.length > 0 ? wins.reduce((s, r) => s + r.pnlPct, 0) / wins.length : 0;
768
+ const avgLossPct = losses.length > 0 ? losses.reduce((s, r) => s + r.pnlPct, 0) / losses.length : 0;
769
+ const avgWinLossRatio = avgLoss !== 0 ? avgWin / Math.abs(avgLoss) : avgWin > 0 ? Infinity : 0;
770
+ const expectancyBts = (winRate * avgWin) + ((1 - winRate) * avgLoss);
771
+ const expectancyPct = (winRate * avgWinPct) + ((1 - winRate) * avgLossPct);
772
+ const rMultiple = Math.abs(avgLoss);
773
+ const expectancyR = rMultiple > 0
774
+ ? winRate * (avgWin / rMultiple) - (1 - winRate)
775
+ : Infinity;
776
+ const netExpectancyBts = pair.totalRealizedPnlNet / total;
777
+ // Daily-binned net PnL for mean/std ratio (dimensionful — not a Sharpe ratio)
778
+ const dayBuckets = {};
779
+ for (const r of pnls) {
780
+ const day = r.exitTime.slice(0, 10);
781
+ dayBuckets[day] = (dayBuckets[day] || 0) + r.pnlNet;
782
+ }
783
+ const dailyRets = Object.values(dayBuckets);
784
+ const nDays = dailyRets.length;
785
+ const meanDailyRet = nDays > 0 ? dailyRets.reduce((s, v) => s + v, 0) / nDays : 0;
786
+ const dailyVar = nDays > 0
787
+ ? dailyRets.reduce((s, v) => s + (v - meanDailyRet) ** 2, 0) / nDays
788
+ : 0;
789
+ const dailyStd = Math.sqrt(dailyVar);
790
+ const annFactor = Math.sqrt(365);
791
+ const dailyPnlRatio = dailyStd > 0 ? (meanDailyRet / dailyStd) * annFactor : 0;
792
+ // Downside deviation uses only negative returns; same N denominator
793
+ const downsideVar = nDays > 0
794
+ ? dailyRets.reduce((s, v) => s + (v < 0 ? v * v : 0), 0) / nDays
795
+ : 0;
796
+ const downsideStd = Math.sqrt(downsideVar);
797
+ const dailyDownsideRatio = downsideStd > 0 ? (meanDailyRet / downsideStd) * annFactor : 0;
798
+ // Fills-per-order distribution (grouped by sell order)
799
+ const fillCounts = [];
800
+ const orderMap = new Map();
801
+ for (const r of pnls) {
802
+ orderMap.set(r.exitOrderId, (orderMap.get(r.exitOrderId) || 0) + 1);
803
+ }
804
+ for (const c of orderMap.values())
805
+ fillCounts.push(c);
806
+ const sellOrdersFilled = orderMap.size;
807
+ const fillsPerOrderMean = sellOrdersFilled > 0
808
+ ? fillCounts.reduce((s, v) => s + v, 0) / sellOrdersFilled
809
+ : 0;
810
+ const fillsPerOrderMax = sellOrdersFilled > 0
811
+ ? fillCounts.reduce((a, b) => Math.max(a, b), 0)
812
+ : 0;
813
+ const sortedCounts = [...fillCounts].sort((a, b) => a - b);
814
+ const fillsPerOrderMedian = sellOrdersFilled > 0 ? percentile(sortedCounts, 50) : 0;
815
+ const oneShotOrderRatio = sellOrdersFilled > 0
816
+ ? fillCounts.filter(c => c === 1).length / sellOrdersFilled
817
+ : 0;
818
+ const fillsPerDay = nDays > 0 ? total / nDays : 0;
819
+ const avgVolumePerDay = nDays > 0 ? (pair.totalBuyQuote + pair.totalSellQuote) / nDays : 0;
820
+ // Avg hold duration
821
+ let totalHours = 0;
822
+ let hourCount = 0;
823
+ for (const r of pnls) {
824
+ const entry = new Date(r.entryTime).getTime();
825
+ const exit = new Date(r.exitTime).getTime();
826
+ if (!isNaN(entry) && !isNaN(exit) && exit > entry) {
827
+ totalHours += (exit - entry) / 3600000;
828
+ hourCount++;
829
+ }
830
+ }
831
+ const avgHoldHours = hourCount > 0 ? totalHours / hourCount : 0;
832
+ // Max consecutive wins / losses (aggregated by exit order)
833
+ const orderPnls = new Map();
834
+ for (const r of pnls) {
835
+ const existing = orderPnls.get(r.exitOrderId);
836
+ if (existing) {
837
+ existing.pnl += r.pnl;
838
+ }
839
+ else {
840
+ orderPnls.set(r.exitOrderId, { pnl: r.pnl, time: r.exitTime });
841
+ }
842
+ }
843
+ const orderResults = [...orderPnls.values()].sort((a, b) => new Date(a.time).getTime() - new Date(b.time).getTime());
844
+ let consecW = 0, consecL = 0;
845
+ let maxW = 0, maxL = 0;
846
+ for (const { pnl } of orderResults) {
847
+ if (pnl > 0) {
848
+ consecW++;
849
+ consecL = 0;
850
+ maxW = Math.max(maxW, consecW);
851
+ }
852
+ else if (pnl < 0) {
853
+ consecL++;
854
+ consecW = 0;
855
+ maxL = Math.max(maxL, consecL);
856
+ }
857
+ else {
858
+ consecW = 0;
859
+ consecL = 0;
860
+ }
861
+ }
862
+ // ─── Max Drawdown + Recovery Time ───────────────────────────────────
863
+ const STABILITY_TRADES = 3;
864
+ const MIN_TRADES_FOR_PEAK = 10; // backstop for monotonic equity curves
865
+ const chronological = [...pnls].sort((a, b) => new Date(a.exitTime).getTime() - new Date(b.exitTime).getTime());
866
+ let equity = 0, peak = 0, mddPct = 0;
867
+ let maxRecoveryDays = 0;
868
+ let isOngoingRecovery = false;
869
+ let currentDrawdownDays = 0;
870
+ let drawdownStartTime = 0;
871
+ let troughTime = 0;
872
+ let currentTroughEquity = Infinity;
873
+ let hadStablePeak = false;
874
+ let tradesSincePeakSet = 0;
875
+ let hasPrePeakEquity = false;
876
+ let prePeakMinEquity = 0;
877
+ let totalTradesProcessed = 0;
878
+ for (const r of chronological) {
879
+ totalTradesProcessed++;
880
+ equity += r.pnlNet;
881
+ if (equity > peak) {
882
+ if (troughTime > 0 && hadStablePeak) {
883
+ const recoveryDays = (new Date(r.exitTime).getTime() - troughTime) / 86400000;
884
+ if (recoveryDays > maxRecoveryDays)
885
+ maxRecoveryDays = recoveryDays;
886
+ }
887
+ peak = equity;
888
+ tradesSincePeakSet = 0;
889
+ currentTroughEquity = Infinity;
890
+ troughTime = 0;
891
+ drawdownStartTime = 0;
892
+ }
893
+ else {
894
+ tradesSincePeakSet++;
895
+ if (tradesSincePeakSet >= STABILITY_TRADES) {
896
+ hadStablePeak = true;
897
+ }
898
+ }
899
+ if (!hadStablePeak && totalTradesProcessed >= MIN_TRADES_FOR_PEAK) {
900
+ hadStablePeak = true;
901
+ }
902
+ if (hadStablePeak && equity < peak && peak > 0) {
903
+ if (drawdownStartTime === 0)
904
+ drawdownStartTime = new Date(r.exitTime).getTime();
905
+ if (equity < currentTroughEquity) {
906
+ currentTroughEquity = equity;
907
+ troughTime = new Date(r.exitTime).getTime();
908
+ }
909
+ const dd = (equity - peak) / peak;
910
+ if (dd < mddPct)
911
+ mddPct = dd;
912
+ }
913
+ if (peak > 0 && !hadStablePeak) {
914
+ if (!hasPrePeakEquity || equity < prePeakMinEquity) {
915
+ prePeakMinEquity = equity;
916
+ hasPrePeakEquity = true;
917
+ }
918
+ }
919
+ }
920
+ if (drawdownStartTime > 0 && hadStablePeak) {
921
+ const lastTime = new Date(chronological[chronological.length - 1].exitTime).getTime();
922
+ currentDrawdownDays = (lastTime - drawdownStartTime) / 86400000;
923
+ isOngoingRecovery = true;
924
+ if (currentDrawdownDays > maxRecoveryDays) {
925
+ maxRecoveryDays = currentDrawdownDays;
926
+ }
927
+ }
928
+ if (hadStablePeak) {
929
+ mddPct *= 100;
930
+ }
931
+ else {
932
+ mddPct = hasPrePeakEquity ? prePeakMinEquity : 0;
933
+ }
934
+ // Payoff distribution stats
935
+ const pnlPcts = [...pnls.map(r => r.pnlPct)].sort((a, b) => a - b);
936
+ const medianPnlPct = percentile(pnlPcts, 50);
937
+ const p25PnlPct = percentile(pnlPcts, 25);
938
+ const p75PnlPct = percentile(pnlPcts, 75);
939
+ const absAvgLoss = Math.abs(avgLoss);
940
+ let rValues = [];
941
+ if (absAvgLoss > 0) {
942
+ rValues = pnls.map(r => r.pnl / absAvgLoss).sort((a, b) => a - b);
943
+ }
944
+ const medianR = rValues.length > 0 ? percentile(rValues, 50) : 0;
945
+ const pctRGreater1 = rValues.length > 0 ? rValues.filter(r => r > 1).length / rValues.length : 0;
946
+ const pctRGreater2 = rValues.length > 0 ? rValues.filter(r => r > 2).length / rValues.length : 0;
947
+ const pctRLessNeg1 = rValues.length > 0 ? rValues.filter(r => r < -1).length / rValues.length : 0;
948
+ const bestTradePct = pnlPcts.length > 0 ? pnlPcts[pnlPcts.length - 1] : 0;
949
+ const worstTradePct = pnlPcts.length > 0 ? pnlPcts[0] : 0;
950
+ return {
951
+ totalLots: total,
952
+ winRate,
953
+ profitFactor,
954
+ avgWin,
955
+ avgLoss,
956
+ avgWinLossRatio,
957
+ expectancyBts,
958
+ expectancyPct,
959
+ expectancyR,
960
+ netExpectancyBts,
961
+ dailyPnlRatio,
962
+ dailyDownsideRatio,
963
+ feeDragPct,
964
+ maxConsecWins: maxW,
965
+ maxConsecLosses: maxL,
966
+ avgHoldHours,
967
+ limitOrderRatio: total > 0 ? totalMakerLegs / (total * 2) : 0,
968
+ bestTradePct,
969
+ worstTradePct,
970
+ mddPct,
971
+ mddHadStablePeak: hadStablePeak,
972
+ isOngoingRecovery,
973
+ currentDrawdownDays,
974
+ maxRecoveryDays,
975
+ medianPnlPct,
976
+ p25PnlPct,
977
+ p75PnlPct,
978
+ medianR,
979
+ pctRGreater1,
980
+ pctRGreater2,
981
+ pctRLessNeg1,
982
+ sellOrdersFilled,
983
+ fillsPerOrderMean,
984
+ fillsPerOrderMedian,
985
+ fillsPerOrderMax,
986
+ oneShotOrderRatio,
987
+ fillsPerDay,
988
+ avgVolumePerDay,
989
+ };
990
+ }
991
+ function printMetrics(pairs) {
992
+ for (const pair of pairs) {
993
+ if (pair.realizedPnls.length === 0)
994
+ continue;
995
+ const m = computeMetrics(pair);
996
+ const pairLabel = `${fmtAsset(pair.baseAsset)}/${fmtAsset(pair.quoteAsset)}`;
997
+ console.log('');
998
+ console.log(` ── ${pairLabel} — Performance Metrics`);
999
+ console.log('');
1000
+ // Edge
1001
+ console.log(` Win Rate: ${(m.winRate * 100).toFixed(1)}%`);
1002
+ console.log(` Profit Factor: ${m.profitFactor === Infinity ? '∞' : m.profitFactor.toFixed(2)}`);
1003
+ const mktFeeStr = pair.totalMarketFees > 0.0001 ? ` (market ${fmt(pair.totalMarketFees, 4)})` : '';
1004
+ const blkFeeStr = pair.totalBlockchainFees > 0.0001 ? ` (op ${fmt(pair.totalBlockchainFees, 4)} BTS)` : '';
1005
+ console.log(` Fee Drag: ${m.feeDragPct > 0 ? m.feeDragPct.toFixed(2) + '% of gross profit' + mktFeeStr + blkFeeStr : '—'}`);
1006
+ console.log(` Avg Win / Avg Loss: ${m.avgWinLossRatio === Infinity ? '∞' : m.avgWinLossRatio.toFixed(2)}`);
1007
+ const qSymbol = fmtAsset(pair.quoteAsset);
1008
+ console.log(` Expectancy (gross): ${fmt(m.expectancyBts, 4)} ${qSymbol} (${fmtPct(m.expectancyPct)}) per trade`);
1009
+ const rDisplay = m.expectancyR === Infinity ? '∞' : m.expectancyR.toFixed(3) + 'R';
1010
+ console.log(` Expectancy (R): ${rDisplay}`);
1011
+ console.log(` Expectancy (net): ${fmt(m.netExpectancyBts, 4)} ${qSymbol} per trade`);
1012
+ console.log('');
1013
+ // Edge quality
1014
+ console.log(` Median R: ${m.medianR.toFixed(2)}`);
1015
+ console.log(` Trades > 1R / > 2R: ${(m.pctRGreater1 * 100).toFixed(1)}% / ${(m.pctRGreater2 * 100).toFixed(1)}%`);
1016
+ console.log(` Trades < -1R: ${(m.pctRLessNeg1 * 100).toFixed(1)}%`);
1017
+ console.log('');
1018
+ // PnL distribution
1019
+ console.log(` Median PnL: ${fmtPct(m.medianPnlPct)}`);
1020
+ console.log(` P25 / P75: ${fmtPct(m.p25PnlPct)} / ${fmtPct(m.p75PnlPct)}`);
1021
+ console.log(` Best / Worst Trade: ${fmtPct(m.bestTradePct)} / ${fmtPct(m.worstTradePct)}`);
1022
+ console.log('');
1023
+ // Risk-adjusted (dimensionful — based on absolute daily PnL, not % returns)
1024
+ console.log(` Sharpe (ann): ${m.dailyPnlRatio.toFixed(2)}`);
1025
+ console.log(` Sortino (ann): ${m.dailyDownsideRatio.toFixed(2)}`);
1026
+ console.log('');
1027
+ // Tail risk
1028
+ if (m.mddHadStablePeak) {
1029
+ console.log(` Max Drawdown: ${fmtPct(m.mddPct)}`);
1030
+ }
1031
+ else {
1032
+ console.log(` Min Equity: ${fmt(m.mddPct, 4)} ${fmtAsset(pair.quoteAsset)}`);
1033
+ }
1034
+ const recLabel = m.maxRecoveryDays > 0 ? m.maxRecoveryDays.toFixed(1) + ' days' + (m.isOngoingRecovery ? ' (ongoing)' : '') : '—';
1035
+ console.log(` Max Recovery Time: ${recLabel}`);
1036
+ if (m.currentDrawdownDays > 0) {
1037
+ console.log(` Current Drawdown: ${m.currentDrawdownDays.toFixed(1)} days (active)`);
1038
+ }
1039
+ console.log('');
1040
+ // Behavioral
1041
+ console.log(` Max Consecutive W/L: ${m.maxConsecWins} / ${m.maxConsecLosses}`);
1042
+ const holdDisplay = m.avgHoldHours > 0 ? m.avgHoldHours.toFixed(1) : '—';
1043
+ console.log(` Avg hold time: ${holdDisplay} hours`);
1044
+ console.log(` Maker / Taker: ${(m.limitOrderRatio * 100).toFixed(1)}% / ${((1 - m.limitOrderRatio) * 100).toFixed(1)}%`);
1045
+ console.log('');
1046
+ // Activity
1047
+ console.log(` Sell orders filled: ${m.sellOrdersFilled}`);
1048
+ console.log(` Partial fills/order: ${m.fillsPerOrderMean.toFixed(2)} mean, ${m.fillsPerOrderMedian.toFixed(1)} med, ${m.fillsPerOrderMax} max`);
1049
+ console.log(` One-shot orders: ${(m.oneShotOrderRatio * 100).toFixed(0)}%`);
1050
+ console.log(` Fills/day: ${m.fillsPerDay.toFixed(2)}`);
1051
+ console.log(` Avg vol/day: ${fmt(m.avgVolumePerDay, 2)} ${fmtAsset(pair.quoteAsset)}`);
1052
+ console.log('');
1053
+ }
1054
+ // Grand totals grouped by quote asset
1055
+ const quoteGroups = new Map();
1056
+ for (const p of pairs) {
1057
+ const q = p.quoteAsset;
1058
+ if (!quoteGroups.has(q))
1059
+ quoteGroups.set(q, []);
1060
+ quoteGroups.get(q).push(p);
1061
+ }
1062
+ if (pairs.length > 1 && quoteGroups.size > 0) {
1063
+ for (const [quoteAsset, group] of quoteGroups) {
1064
+ const totalLots = group.reduce((s, p) => s + p.realizedPnls.length, 0);
1065
+ const totalNet = group.reduce((s, p) => s + p.totalRealizedPnlNet, 0);
1066
+ const totalMktFees = group.reduce((s, p) => s + p.totalMarketFees, 0);
1067
+ const totalBlkFees = group.reduce((s, p) => s + p.totalBlockchainFees, 0);
1068
+ const qSymbol = fmtAsset(quoteAsset);
1069
+ console.log(` ── TOTAL (${qSymbol}) — ${group.length} pair(s)`);
1070
+ console.log(` Lots: ${totalLots}`);
1071
+ const feeParts = [];
1072
+ if (totalMktFees > 0.0001)
1073
+ feeParts.push(`market ${fmt(totalMktFees, 4)} ${qSymbol}`);
1074
+ if (totalBlkFees > 0.0001)
1075
+ feeParts.push(`op ${fmt(totalBlkFees, 4)} BTS`);
1076
+ const feeSuffix = feeParts.length > 0 ? ` (${feeParts.join(', ')})` : '';
1077
+ console.log(` Net PnL: ${fmtAsset(quoteAsset)} ${fmt(totalNet, 4)}${feeSuffix}`);
1078
+ console.log('');
1079
+ }
1080
+ }
1081
+ }
1082
+ // ─── CSV Export ──────────────────────────────────────────────────────────────
1083
+ function exportCsv(pairs, filePath) {
1084
+ const esc = (v) => { const s = String(v); return /[,"\n]/.test(s) ? '"' + s.replace(/"/g, '""') + '"' : s; };
1085
+ const lines = ['time,orderId,direction,baseAsset,quoteAsset,baseAmount,quoteAmount,price,isMaker,marketFeeReal,marketFeeAsset'];
1086
+ for (const pair of pairs) {
1087
+ for (const t of [...pair.buys, ...pair.sells].sort((a, b) => a.sequence - b.sequence)) {
1088
+ lines.push([
1089
+ esc(t.time),
1090
+ esc(t.orderId),
1091
+ esc(t.direction),
1092
+ esc(t.baseAsset),
1093
+ esc(t.quoteAsset),
1094
+ t.baseAmount,
1095
+ t.quoteAmount,
1096
+ t.price,
1097
+ t.isMaker ? '1' : '0',
1098
+ t.marketFeeReal,
1099
+ esc(t.marketFeeAsset),
1100
+ ].join(','));
1101
+ }
1102
+ }
1103
+ fs.writeFileSync(filePath, lines.join('\n'), 'utf-8');
1104
+ console.log(` Trades exported to ${filePath}`);
1105
+ }
1106
+ // ─── JSON Export ─────────────────────────────────────────────────────────────
1107
+ function exportJson(accountId, start, end, pairs, filePath) {
1108
+ const data = {
1109
+ accountId,
1110
+ period: { start, end },
1111
+ pairs: pairs.map(p => ({
1112
+ baseAsset: p.baseAsset,
1113
+ quoteAsset: p.quoteAsset,
1114
+ summary: {
1115
+ totalBuyBase: p.totalBuyBase,
1116
+ totalSellBase: p.totalSellBase,
1117
+ totalBuyQuote: p.totalBuyQuote,
1118
+ totalSellQuote: p.totalSellQuote,
1119
+ netPosition: p.netPosition,
1120
+ totalRealizedPnl: p.totalRealizedPnl,
1121
+ totalMarketFees: p.totalMarketFees,
1122
+ totalBlockchainFees: p.totalBlockchainFees,
1123
+ totalRealizedPnlNet: p.totalRealizedPnlNet,
1124
+ },
1125
+ realizedPnls: p.realizedPnls.map(r => ({
1126
+ ...r,
1127
+ marketFeeEntry: r.marketFeeEntry,
1128
+ marketFeeExit: r.marketFeeExit,
1129
+ feeBts: r.feeBts,
1130
+ pnlNet: r.pnlNet,
1131
+ pnlNetPct: r.pnlNetPct,
1132
+ })),
1133
+ totalBuys: p.buys.length,
1134
+ totalSells: p.sells.length,
1135
+ })),
1136
+ };
1137
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8');
1138
+ console.log(` Full analysis exported to ${filePath}`);
1139
+ }
1140
+ // ─── Main ────────────────────────────────────────────────────────────────────
1141
+ async function run() {
1142
+ const opts = parseArgs();
1143
+ let accountId = opts.accountId;
1144
+ if (opts.lookup) {
1145
+ const resolved = await resolveAccountId(accountId, opts.node);
1146
+ if (!resolved) {
1147
+ console.error(` Could not resolve "${accountId}" to an account ID`);
1148
+ process.exit(1);
1149
+ }
1150
+ accountId = resolved;
1151
+ }
1152
+ // Build time range
1153
+ const now = new Date();
1154
+ let gte, lte;
1155
+ if (opts.start && opts.end) {
1156
+ gte = opts.start;
1157
+ lte = opts.end;
1158
+ }
1159
+ else if (opts.start) {
1160
+ gte = opts.start;
1161
+ lte = now.toISOString();
1162
+ }
1163
+ else {
1164
+ const hours = opts.hours || 168;
1165
+ const start = new Date(now.getTime() - hours * 3600 * 1000);
1166
+ gte = start.toISOString();
1167
+ lte = now.toISOString();
1168
+ }
1169
+ // Ensure times end with Z for ES
1170
+ if (!gte.endsWith('Z'))
1171
+ gte += gte.includes('T') ? 'Z' : 'T00:00:00Z';
1172
+ if (!lte.endsWith('Z'))
1173
+ lte += lte.includes('T') ? 'Z' : 'T00:00:00Z';
1174
+ const KIBANA_CFG = { timeout: 60000 };
1175
+ const fills = await fetchAllFills(KIBANA_CFG, accountId, gte, lte);
1176
+ if (fills.length === 0) {
1177
+ console.log(' No fills found in the specified time range.');
1178
+ process.exit(0);
1179
+ }
1180
+ // Resolve unknown asset precisions from blockchain
1181
+ await resolveAssetPrecisions(fills, opts.node);
1182
+ // Classify fills
1183
+ const { trades, pairs } = classifyFills(fills, opts.asset);
1184
+ if (trades.length === 0) {
1185
+ console.log(' No trades could be classified (check asset filter or time range).');
1186
+ process.exit(0);
1187
+ }
1188
+ console.log(`Account: ${accountId}`);
1189
+ console.log(`Period: ${gte.slice(0, 10)} → ${lte.slice(0, 10)}`);
1190
+ console.log(`Pairs: ${pairs.size}, ${trades.length} classified trades`);
1191
+ const hasCrossPair = [...pairs].some(p => p.split(':')[1] !== BTS_ID);
1192
+ if (hasCrossPair) {
1193
+ console.log(` Note: cross-pair trades (non-BTS quote) are included but PnL is in the pair's quote asset.`);
1194
+ }
1195
+ console.log('');
1196
+ // Override blockchain fee from CLI if provided
1197
+ if (opts.feePerOrder)
1198
+ BLOCKCHAIN_FEE_PER_FILL = opts.feePerOrder;
1199
+ // Analyze each pair
1200
+ const pairMap = new Map();
1201
+ for (const t of trades) {
1202
+ const pairKey = `${t.baseAsset}:${t.quoteAsset}`;
1203
+ if (!pairMap.has(pairKey))
1204
+ pairMap.set(pairKey, []);
1205
+ pairMap.get(pairKey).push(t);
1206
+ }
1207
+ const analyses = [];
1208
+ for (const [key, pairTrades] of pairMap) {
1209
+ const analysis = analyzePair(pairTrades, opts.matchMode);
1210
+ analyses.push(analysis);
1211
+ if (opts.verbose) {
1212
+ const [base, quote] = key.split(':');
1213
+ console.log(` ${fmtAsset(base)}/${fmtAsset(quote)}: ${pairTrades.filter(t => t.direction === 'buy').length} buys, ${pairTrades.filter(t => t.direction === 'sell').length} sells, ${analysis.realizedPnls.length} matched lots`);
1214
+ }
1215
+ }
1216
+ // Sort pairs by volume (total quote)
1217
+ analyses.sort((a, b) => (b.totalBuyQuote + b.totalSellQuote) - (a.totalBuyQuote + a.totalSellQuote));
1218
+ // Output: summaries → grand total → per-match detail
1219
+ printSummary(analyses, accountId, gte, lte, opts.matchMode);
1220
+ if (opts.showPnlDetail) {
1221
+ printPnlDetail(analyses);
1222
+ }
1223
+ printMetrics(analyses);
1224
+ if (opts.csv) {
1225
+ exportCsv(analyses, opts.csv);
1226
+ }
1227
+ if (opts.json) {
1228
+ exportJson(accountId, gte, lte, analyses, opts.json);
1229
+ }
1230
+ }
1231
+ export { analyzePair, classifyFills, computeMetrics };
1232
+ if (import.meta.url === pathToFileURL(process.argv[1]).href) {
1233
+ run().then(() => process.exit(0)).catch(e => {
1234
+ console.error('\n[fatal]', e.message);
1235
+ if (process.env.DEBUG)
1236
+ console.error(e.stack);
1237
+ process.exit(1);
1238
+ });
1239
+ }
1240
+ //# sourceMappingURL=trade_profitability.js.map