@quantform/core 0.6.6 → 0.7.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/dist/as-readonly.d.ts +3 -0
  2. package/dist/as-readonly.d.ts.map +1 -0
  3. package/dist/as-readonly.js +8 -0
  4. package/dist/{domain → asset}/asset.d.ts +6 -1
  5. package/dist/asset/asset.d.ts.map +1 -0
  6. package/dist/{domain → asset}/asset.js +16 -7
  7. package/dist/asset/asset.spec.d.ts +2 -0
  8. package/dist/asset/asset.spec.d.ts.map +1 -0
  9. package/dist/asset/asset.spec.js +54 -0
  10. package/dist/asset/index.d.ts +2 -0
  11. package/dist/asset/index.d.ts.map +1 -0
  12. package/dist/{adapter/paper → asset}/index.js +1 -2
  13. package/dist/cli/build.js +1 -1
  14. package/dist/cli/dev.d.ts.map +1 -1
  15. package/dist/cli/dev.js +15 -11
  16. package/dist/cli/index.js +8 -8
  17. package/dist/cli/internal/workspace.js +1 -1
  18. package/dist/cli/pull.d.ts.map +1 -1
  19. package/dist/cli/pull.js +50 -20
  20. package/dist/cli/{test.d.ts → replay.d.ts} +1 -1
  21. package/dist/cli/replay.d.ts.map +1 -0
  22. package/dist/cli/{test.js → replay.js} +18 -20
  23. package/dist/cli/run.d.ts.map +1 -1
  24. package/dist/cli/run.js +16 -11
  25. package/dist/component/distinct-until-timesamp-changed.d.ts +5 -0
  26. package/dist/component/distinct-until-timesamp-changed.d.ts.map +1 -0
  27. package/dist/component/distinct-until-timesamp-changed.js +9 -0
  28. package/dist/component/error.d.ts +17 -0
  29. package/dist/component/error.d.ts.map +1 -0
  30. package/dist/component/error.js +33 -0
  31. package/dist/component/index.d.ts +8 -0
  32. package/dist/component/index.d.ts.map +1 -0
  33. package/dist/{store → component}/index.js +7 -9
  34. package/dist/{domain → component}/ohlc-operator.d.ts +1 -1
  35. package/dist/component/ohlc-operator.d.ts.map +1 -0
  36. package/dist/{domain → component}/ohlc-operator.js +4 -5
  37. package/dist/component/ohlc-operator.spec.d.ts +2 -0
  38. package/dist/component/ohlc-operator.spec.d.ts.map +1 -0
  39. package/dist/component/ohlc-operator.spec.js +110 -0
  40. package/dist/component/ohlc.d.ts.map +1 -0
  41. package/dist/component/ohlc.spec.d.ts +2 -0
  42. package/dist/component/ohlc.spec.d.ts.map +1 -0
  43. package/dist/component/ohlc.spec.js +25 -0
  44. package/dist/component/timeframe.d.ts.map +1 -0
  45. package/dist/core.d.ts +3 -0
  46. package/dist/core.d.ts.map +1 -0
  47. package/dist/core.js +15 -0
  48. package/dist/defined.d.ts +3 -0
  49. package/dist/defined.d.ts.map +1 -0
  50. package/dist/defined.js +8 -0
  51. package/dist/errored.d.ts +2 -0
  52. package/dist/errored.d.ts.map +1 -0
  53. package/dist/{domain/component.js → errored.js} +2 -0
  54. package/dist/exclude.d.ts +3 -0
  55. package/dist/exclude.d.ts.map +1 -0
  56. package/dist/exclude.js +8 -0
  57. package/dist/index.d.ts +25 -27
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +25 -66
  60. package/dist/{domain → instrument/commission}/commission.d.ts +1 -1
  61. package/dist/instrument/commission/commission.d.ts.map +1 -0
  62. package/dist/{domain → instrument/commission}/commission.js +2 -2
  63. package/dist/instrument/commission/commission.spec.d.ts +2 -0
  64. package/dist/instrument/commission/commission.spec.d.ts.map +1 -0
  65. package/dist/instrument/commission/commission.spec.js +30 -0
  66. package/dist/instrument/index.d.ts +3 -0
  67. package/dist/instrument/index.d.ts.map +1 -0
  68. package/dist/{adapter → instrument}/index.js +2 -4
  69. package/dist/{domain → instrument}/instrument.d.ts +4 -4
  70. package/dist/instrument/instrument.d.ts.map +1 -0
  71. package/dist/{domain → instrument}/instrument.js +8 -5
  72. package/dist/instrument/instrument.spec.d.ts +2 -0
  73. package/dist/instrument/instrument.spec.d.ts.map +1 -0
  74. package/dist/instrument/instrument.spec.js +51 -0
  75. package/dist/make-test-module.d.ts +13 -0
  76. package/dist/make-test-module.d.ts.map +1 -0
  77. package/dist/make-test-module.js +46 -0
  78. package/dist/module.d.ts +57 -0
  79. package/dist/module.d.ts.map +1 -0
  80. package/dist/module.js +136 -0
  81. package/dist/module.spec.d.ts +2 -0
  82. package/dist/module.spec.d.ts.map +1 -0
  83. package/dist/module.spec.js +86 -0
  84. package/dist/replay/index.d.ts +7 -0
  85. package/dist/replay/index.d.ts.map +1 -0
  86. package/dist/replay/index.js +22 -0
  87. package/dist/replay/use-replay-coordinator.d.ts +10 -0
  88. package/dist/replay/use-replay-coordinator.d.ts.map +1 -0
  89. package/dist/replay/use-replay-coordinator.js +119 -0
  90. package/dist/replay/use-replay-options.d.ts +15 -0
  91. package/dist/replay/use-replay-options.d.ts.map +1 -0
  92. package/dist/replay/use-replay-options.js +20 -0
  93. package/dist/replay/use-replay-reader.d.ts +7 -0
  94. package/dist/replay/use-replay-reader.d.ts.map +1 -0
  95. package/dist/replay/use-replay-reader.js +32 -0
  96. package/dist/replay/use-replay-reader.spec.d.ts +2 -0
  97. package/dist/replay/use-replay-reader.spec.d.ts.map +1 -0
  98. package/dist/replay/use-replay-reader.spec.js +58 -0
  99. package/dist/replay/use-replay-storage.d.ts +10 -0
  100. package/dist/replay/use-replay-storage.d.ts.map +1 -0
  101. package/dist/replay/use-replay-storage.js +10 -0
  102. package/dist/replay/use-replay-writer.d.ts +6 -0
  103. package/dist/replay/use-replay-writer.d.ts.map +1 -0
  104. package/dist/replay/use-replay-writer.js +14 -0
  105. package/dist/replay/use-replay-writer.spec.d.ts +2 -0
  106. package/dist/replay/use-replay-writer.spec.d.ts.map +1 -0
  107. package/dist/replay/use-replay-writer.spec.js +53 -0
  108. package/dist/replay/use-replay.d.ts +10 -0
  109. package/dist/replay/use-replay.d.ts.map +1 -0
  110. package/dist/replay/use-replay.js +32 -0
  111. package/dist/replay/use-replay.spec.d.ts +2 -0
  112. package/dist/replay/use-replay.spec.d.ts.map +1 -0
  113. package/dist/replay/use-replay.spec.js +106 -0
  114. package/dist/replay/with-replay.d.ts +4 -0
  115. package/dist/replay/with-replay.d.ts.map +1 -0
  116. package/dist/replay/with-replay.js +8 -0
  117. package/dist/session/index.d.ts +4 -0
  118. package/dist/session/index.d.ts.map +1 -0
  119. package/dist/session/index.js +19 -0
  120. package/dist/session/use-session-object.d.ts +18 -0
  121. package/dist/session/use-session-object.d.ts.map +1 -0
  122. package/dist/session/use-session-object.js +13 -0
  123. package/dist/session/use-session-storage.d.ts +2 -0
  124. package/dist/session/use-session-storage.d.ts.map +1 -0
  125. package/dist/session/use-session-storage.js +10 -0
  126. package/dist/session/use-session.d.ts +4 -0
  127. package/dist/session/use-session.d.ts.map +1 -0
  128. package/dist/session/use-session.js +7 -0
  129. package/dist/shared/datetime.d.ts +1 -1
  130. package/dist/shared/datetime.d.ts.map +1 -1
  131. package/dist/shared/decimals.d.ts.map +1 -1
  132. package/dist/shared/decimals.js +5 -0
  133. package/dist/shared/decimals.spec.d.ts +2 -0
  134. package/dist/shared/decimals.spec.d.ts.map +1 -0
  135. package/dist/shared/decimals.spec.js +28 -0
  136. package/dist/shared/index.d.ts +3 -7
  137. package/dist/shared/index.d.ts.map +1 -1
  138. package/dist/shared/index.js +3 -7
  139. package/dist/simulator/index.d.ts +2 -0
  140. package/dist/simulator/index.d.ts.map +1 -0
  141. package/dist/{adapter/backtester → simulator}/index.js +1 -2
  142. package/dist/simulator/use-simulator.d.ts +2 -0
  143. package/dist/simulator/use-simulator.d.ts.map +1 -0
  144. package/dist/simulator/use-simulator.js +9 -0
  145. package/dist/simulator/use-simulator.spec.d.ts +2 -0
  146. package/dist/simulator/use-simulator.spec.d.ts.map +1 -0
  147. package/dist/simulator/use-simulator.spec.js +49 -0
  148. package/dist/storage/in-memory/in-memory-storage.d.ts +9 -0
  149. package/dist/storage/in-memory/in-memory-storage.d.ts.map +1 -0
  150. package/dist/storage/in-memory/in-memory-storage.factory.d.ts +6 -0
  151. package/dist/storage/in-memory/in-memory-storage.factory.d.ts.map +1 -0
  152. package/dist/storage/in-memory/in-memory-storage.factory.js +23 -0
  153. package/dist/storage/in-memory/in-memory-storage.js +72 -0
  154. package/dist/storage/in-memory/in-memory-storage.spec.d.ts +2 -0
  155. package/dist/storage/in-memory/in-memory-storage.spec.d.ts.map +1 -0
  156. package/dist/storage/in-memory/in-memory-storage.spec.js +167 -0
  157. package/dist/storage/in-memory/index.d.ts +3 -0
  158. package/dist/storage/in-memory/index.d.ts.map +1 -0
  159. package/dist/storage/in-memory/index.js +18 -0
  160. package/dist/storage/index.d.ts +3 -3
  161. package/dist/storage/index.d.ts.map +1 -1
  162. package/dist/storage/index.js +3 -3
  163. package/dist/storage/storage.d.ts +51 -61
  164. package/dist/storage/storage.d.ts.map +1 -1
  165. package/dist/storage/storage.js +20 -85
  166. package/dist/storage/use-cache.d.ts +4 -0
  167. package/dist/storage/use-cache.d.ts.map +1 -0
  168. package/dist/storage/use-cache.js +34 -0
  169. package/dist/storage/use-cache.spec.d.ts +2 -0
  170. package/dist/storage/use-cache.spec.d.ts.map +1 -0
  171. package/dist/storage/use-cache.spec.js +36 -0
  172. package/dist/storage/use-storage-factory.d.ts +10 -0
  173. package/dist/storage/use-storage-factory.d.ts.map +1 -0
  174. package/dist/storage/use-storage-factory.js +14 -0
  175. package/dist/storage/use-storage.d.ts +3 -0
  176. package/dist/storage/use-storage.d.ts.map +1 -0
  177. package/dist/storage/use-storage.js +11 -0
  178. package/dist/strat.d.ts +7 -0
  179. package/dist/strat.d.ts.map +1 -0
  180. package/dist/strat.js +7 -0
  181. package/dist/use-execution-mode.d.ts +29 -0
  182. package/dist/use-execution-mode.d.ts.map +1 -0
  183. package/dist/use-execution-mode.js +37 -0
  184. package/dist/use-hash.d.ts +5 -0
  185. package/dist/use-hash.d.ts.map +1 -0
  186. package/dist/use-hash.js +7 -0
  187. package/dist/use-hash.spec.d.ts +2 -0
  188. package/dist/use-hash.spec.d.ts.map +1 -0
  189. package/dist/use-hash.spec.js +16 -0
  190. package/dist/use-lock.d.ts +9 -0
  191. package/dist/use-lock.d.ts.map +1 -0
  192. package/dist/use-lock.js +40 -0
  193. package/dist/use-logger.d.ts +10 -0
  194. package/dist/use-logger.d.ts.map +1 -0
  195. package/dist/use-logger.js +37 -0
  196. package/dist/use-memo.d.ts +21 -0
  197. package/dist/use-memo.d.ts.map +1 -0
  198. package/dist/use-memo.js +35 -0
  199. package/dist/use-memo.spec.d.ts +2 -0
  200. package/dist/use-memo.spec.d.ts.map +1 -0
  201. package/dist/use-memo.spec.js +35 -0
  202. package/dist/use-request.d.ts +16 -0
  203. package/dist/use-request.d.ts.map +1 -0
  204. package/dist/use-request.js +27 -0
  205. package/dist/use-socket.d.ts +6 -0
  206. package/dist/use-socket.d.ts.map +1 -0
  207. package/dist/use-socket.js +53 -0
  208. package/dist/use-state.d.ts +4 -0
  209. package/dist/use-state.d.ts.map +1 -0
  210. package/dist/use-state.js +24 -0
  211. package/dist/use-state.spec.d.ts +2 -0
  212. package/dist/use-state.spec.d.ts.map +1 -0
  213. package/dist/use-state.spec.js +36 -0
  214. package/dist/use-timestamp.d.ts +2 -0
  215. package/dist/use-timestamp.d.ts.map +1 -0
  216. package/dist/use-timestamp.js +13 -0
  217. package/dist/use.d.ts +5 -0
  218. package/dist/use.d.ts.map +1 -0
  219. package/dist/use.js +20 -0
  220. package/dist/use.spec.d.ts +2 -0
  221. package/dist/use.spec.d.ts.map +1 -0
  222. package/dist/use.spec.js +47 -0
  223. package/jest.config.ts +23 -2
  224. package/package.json +14 -11
  225. package/src/as-readonly.ts +5 -0
  226. package/src/{domain → asset}/asset.spec.ts +4 -4
  227. package/src/{domain → asset}/asset.ts +17 -6
  228. package/src/asset/index.ts +1 -0
  229. package/src/cli/build.ts +1 -1
  230. package/src/cli/dev.ts +18 -13
  231. package/src/cli/index.ts +7 -7
  232. package/src/cli/internal/workspace.ts +1 -1
  233. package/src/cli/pull.ts +22 -10
  234. package/src/cli/replay.ts +31 -0
  235. package/src/cli/run.ts +17 -13
  236. package/src/component/distinct-until-timesamp-changed.ts +11 -0
  237. package/src/component/error.ts +32 -0
  238. package/src/component/index.ts +7 -0
  239. package/src/{domain → component}/ohlc-operator.spec.ts +5 -6
  240. package/src/{domain → component}/ohlc-operator.ts +2 -3
  241. package/src/{domain → component}/ohlc.spec.ts +2 -2
  242. package/src/{domain → component}/ohlc.ts +2 -2
  243. package/src/core.ts +14 -0
  244. package/src/defined.ts +6 -0
  245. package/src/errored.ts +1 -0
  246. package/src/exclude.ts +9 -0
  247. package/src/index.ts +27 -80
  248. package/src/{domain → instrument/commission}/commission.spec.ts +4 -3
  249. package/src/{domain → instrument/commission}/commission.ts +1 -1
  250. package/src/instrument/index.ts +2 -0
  251. package/src/{domain → instrument}/instrument.spec.ts +11 -6
  252. package/src/{domain → instrument}/instrument.ts +12 -8
  253. package/src/make-test-module.ts +46 -0
  254. package/src/module.spec.ts +74 -0
  255. package/src/module.ts +156 -0
  256. package/src/replay/index.ts +6 -0
  257. package/src/replay/use-replay-coordinator.ts +142 -0
  258. package/src/replay/use-replay-options.ts +23 -0
  259. package/src/replay/use-replay-reader.spec.ts +64 -0
  260. package/src/replay/use-replay-reader.ts +23 -0
  261. package/src/replay/use-replay-storage.ts +8 -0
  262. package/src/replay/use-replay-writer.spec.ts +56 -0
  263. package/src/replay/use-replay-writer.ts +17 -0
  264. package/src/replay/use-replay.spec.ts +132 -0
  265. package/src/replay/use-replay.ts +34 -0
  266. package/src/replay/with-replay.ts +10 -0
  267. package/src/session/index.ts +3 -0
  268. package/src/session/use-session-object.ts +26 -0
  269. package/src/session/use-session-storage.ts +9 -0
  270. package/src/session/use-session.ts +5 -0
  271. package/src/shared/decimals.spec.ts +1 -1
  272. package/src/shared/decimals.ts +5 -0
  273. package/src/shared/index.ts +3 -7
  274. package/src/simulator/index.ts +1 -0
  275. package/src/simulator/use-simulator.spec.ts +54 -0
  276. package/src/simulator/use-simulator.ts +7 -0
  277. package/src/storage/in-memory/in-memory-storage.factory.ts +16 -0
  278. package/src/storage/in-memory/in-memory-storage.spec.ts +193 -0
  279. package/src/storage/in-memory/in-memory-storage.ts +80 -0
  280. package/src/storage/in-memory/index.ts +2 -0
  281. package/src/storage/index.ts +3 -3
  282. package/src/storage/storage.ts +63 -119
  283. package/src/storage/use-cache.spec.ts +31 -0
  284. package/src/storage/use-cache.ts +50 -0
  285. package/src/storage/use-storage-factory.ts +17 -0
  286. package/src/storage/use-storage.ts +11 -0
  287. package/src/strat.ts +7 -0
  288. package/src/use-execution-mode.ts +41 -0
  289. package/src/use-hash.spec.ts +16 -0
  290. package/src/use-hash.ts +5 -0
  291. package/src/use-lock.ts +52 -0
  292. package/src/use-logger.ts +47 -0
  293. package/src/use-memo.spec.ts +30 -0
  294. package/src/use-memo.ts +35 -0
  295. package/src/use-request.ts +47 -0
  296. package/src/use-socket.ts +60 -0
  297. package/src/use-state.spec.ts +31 -0
  298. package/src/use-state.ts +30 -0
  299. package/src/use-timestamp.ts +12 -0
  300. package/src/use.spec.ts +46 -0
  301. package/src/use.ts +33 -0
  302. package/tsconfig.json +7 -4
  303. package/dist/adapter/adapter-aggregate.d.ts +0 -57
  304. package/dist/adapter/adapter-aggregate.d.ts.map +0 -1
  305. package/dist/adapter/adapter-aggregate.js +0 -157
  306. package/dist/adapter/adapter.d.ts +0 -54
  307. package/dist/adapter/adapter.d.ts.map +0 -1
  308. package/dist/adapter/adapter.js +0 -20
  309. package/dist/adapter/backtester/backtester-adapter.d.ts +0 -30
  310. package/dist/adapter/backtester/backtester-adapter.d.ts.map +0 -1
  311. package/dist/adapter/backtester/backtester-adapter.js +0 -67
  312. package/dist/adapter/backtester/backtester-cursor.d.ts +0 -16
  313. package/dist/adapter/backtester/backtester-cursor.d.ts.map +0 -1
  314. package/dist/adapter/backtester/backtester-cursor.js +0 -52
  315. package/dist/adapter/backtester/backtester-streamer.d.ts +0 -50
  316. package/dist/adapter/backtester/backtester-streamer.d.ts.map +0 -1
  317. package/dist/adapter/backtester/backtester-streamer.js +0 -119
  318. package/dist/adapter/backtester/error.d.ts +0 -3
  319. package/dist/adapter/backtester/error.d.ts.map +0 -1
  320. package/dist/adapter/backtester/error.js +0 -11
  321. package/dist/adapter/backtester/index.d.ts +0 -3
  322. package/dist/adapter/backtester/index.d.ts.map +0 -1
  323. package/dist/adapter/error.d.ts +0 -4
  324. package/dist/adapter/error.d.ts.map +0 -1
  325. package/dist/adapter/error.js +0 -15
  326. package/dist/adapter/index.d.ts +0 -5
  327. package/dist/adapter/index.d.ts.map +0 -1
  328. package/dist/adapter/paper/engine/paper-engine.d.ts +0 -12
  329. package/dist/adapter/paper/engine/paper-engine.d.ts.map +0 -1
  330. package/dist/adapter/paper/engine/paper-engine.js +0 -109
  331. package/dist/adapter/paper/index.d.ts +0 -3
  332. package/dist/adapter/paper/index.d.ts.map +0 -1
  333. package/dist/adapter/paper/paper-adapter.d.ts +0 -30
  334. package/dist/adapter/paper/paper-adapter.d.ts.map +0 -1
  335. package/dist/adapter/paper/paper-adapter.js +0 -87
  336. package/dist/cli/error.d.ts +0 -2
  337. package/dist/cli/error.d.ts.map +0 -1
  338. package/dist/cli/error.js +0 -7
  339. package/dist/cli/test.d.ts.map +0 -1
  340. package/dist/domain/asset.d.ts.map +0 -1
  341. package/dist/domain/balance-operator.d.ts +0 -7
  342. package/dist/domain/balance-operator.d.ts.map +0 -1
  343. package/dist/domain/balance-operator.js +0 -9
  344. package/dist/domain/balance.d.ts +0 -47
  345. package/dist/domain/balance.d.ts.map +0 -1
  346. package/dist/domain/balance.js +0 -97
  347. package/dist/domain/commission.d.ts.map +0 -1
  348. package/dist/domain/component.d.ts +0 -6
  349. package/dist/domain/component.d.ts.map +0 -1
  350. package/dist/domain/error.d.ts +0 -7
  351. package/dist/domain/error.d.ts.map +0 -1
  352. package/dist/domain/error.js +0 -23
  353. package/dist/domain/index.d.ts +0 -22
  354. package/dist/domain/index.d.ts.map +0 -1
  355. package/dist/domain/index.js +0 -37
  356. package/dist/domain/instrument-operator.d.ts +0 -7
  357. package/dist/domain/instrument-operator.d.ts.map +0 -1
  358. package/dist/domain/instrument-operator.js +0 -13
  359. package/dist/domain/instrument.d.ts.map +0 -1
  360. package/dist/domain/ohlc-operator.d.ts.map +0 -1
  361. package/dist/domain/ohlc.d.ts.map +0 -1
  362. package/dist/domain/order-operator.d.ts +0 -8
  363. package/dist/domain/order-operator.d.ts.map +0 -1
  364. package/dist/domain/order-operator.js +0 -16
  365. package/dist/domain/order.d.ts +0 -24
  366. package/dist/domain/order.d.ts.map +0 -1
  367. package/dist/domain/order.js +0 -49
  368. package/dist/domain/orderbook-operator.d.ts +0 -7
  369. package/dist/domain/orderbook-operator.d.ts.map +0 -1
  370. package/dist/domain/orderbook-operator.js +0 -9
  371. package/dist/domain/orderbook.d.ts +0 -30
  372. package/dist/domain/orderbook.d.ts.map +0 -1
  373. package/dist/domain/orderbook.js +0 -20
  374. package/dist/domain/position-operator.d.ts +0 -13
  375. package/dist/domain/position-operator.d.ts.map +0 -1
  376. package/dist/domain/position-operator.js +0 -45
  377. package/dist/domain/position.d.ts +0 -18
  378. package/dist/domain/position.d.ts.map +0 -1
  379. package/dist/domain/position.js +0 -23
  380. package/dist/domain/session-builder.d.ts +0 -54
  381. package/dist/domain/session-builder.d.ts.map +0 -1
  382. package/dist/domain/session-builder.js +0 -106
  383. package/dist/domain/session.d.ts +0 -77
  384. package/dist/domain/session.d.ts.map +0 -1
  385. package/dist/domain/session.js +0 -162
  386. package/dist/domain/timeframe.d.ts.map +0 -1
  387. package/dist/domain/trade-operator.d.ts +0 -7
  388. package/dist/domain/trade-operator.d.ts.map +0 -1
  389. package/dist/domain/trade-operator.js +0 -9
  390. package/dist/domain/trade.d.ts +0 -16
  391. package/dist/domain/trade.d.ts.map +0 -1
  392. package/dist/domain/trade.js +0 -17
  393. package/dist/shared/collections.d.ts +0 -29
  394. package/dist/shared/collections.d.ts.map +0 -1
  395. package/dist/shared/collections.js +0 -123
  396. package/dist/shared/logger.d.ts +0 -8
  397. package/dist/shared/logger.d.ts.map +0 -1
  398. package/dist/shared/logger.js +0 -33
  399. package/dist/shared/pipe.d.ts +0 -5
  400. package/dist/shared/pipe.d.ts.map +0 -1
  401. package/dist/shared/pipe.js +0 -8
  402. package/dist/shared/policy.d.ts +0 -2
  403. package/dist/shared/policy.d.ts.map +0 -1
  404. package/dist/shared/policy.js +0 -8
  405. package/dist/storage/cache.d.ts +0 -10
  406. package/dist/storage/cache.d.ts.map +0 -1
  407. package/dist/storage/cache.js +0 -43
  408. package/dist/storage/feed.d.ts +0 -38
  409. package/dist/storage/feed.d.ts.map +0 -1
  410. package/dist/storage/feed.js +0 -108
  411. package/dist/storage/measurement.d.ts +0 -34
  412. package/dist/storage/measurement.d.ts.map +0 -1
  413. package/dist/storage/measurement.js +0 -59
  414. package/dist/store/error.d.ts +0 -9
  415. package/dist/store/error.d.ts.map +0 -1
  416. package/dist/store/error.js +0 -31
  417. package/dist/store/index.d.ts +0 -10
  418. package/dist/store/index.d.ts.map +0 -1
  419. package/dist/store/store-balance-event.d.ts +0 -46
  420. package/dist/store/store-balance-event.d.ts.map +0 -1
  421. package/dist/store/store-balance-event.js +0 -134
  422. package/dist/store/store-event.d.ts +0 -7
  423. package/dist/store/store-event.d.ts.map +0 -1
  424. package/dist/store/store-event.js +0 -2
  425. package/dist/store/store-instrument-event.d.ts +0 -22
  426. package/dist/store/store-instrument-event.d.ts.map +0 -1
  427. package/dist/store/store-instrument-event.js +0 -60
  428. package/dist/store/store-order-event.d.ts +0 -64
  429. package/dist/store/store-order-event.d.ts.map +0 -1
  430. package/dist/store/store-order-event.js +0 -185
  431. package/dist/store/store-orderbook-event.d.ts +0 -13
  432. package/dist/store/store-orderbook-event.d.ts.map +0 -1
  433. package/dist/store/store-orderbook-event.js +0 -43
  434. package/dist/store/store-position-event.d.ts +0 -22
  435. package/dist/store/store-position-event.d.ts.map +0 -1
  436. package/dist/store/store-position-event.js +0 -96
  437. package/dist/store/store-state.d.ts +0 -28
  438. package/dist/store/store-state.d.ts.map +0 -1
  439. package/dist/store/store-state.js +0 -29
  440. package/dist/store/store-trade-event.d.ts +0 -17
  441. package/dist/store/store-trade-event.d.ts.map +0 -1
  442. package/dist/store/store-trade-event.js +0 -34
  443. package/dist/store/store.d.ts +0 -15
  444. package/dist/store/store.d.ts.map +0 -1
  445. package/dist/store/store.js +0 -32
  446. package/src/adapter/adapter-aggregate.ts +0 -171
  447. package/src/adapter/adapter.ts +0 -83
  448. package/src/adapter/backtester/backtester-adapter.ts +0 -96
  449. package/src/adapter/backtester/backtester-cursor.spec.ts +0 -44
  450. package/src/adapter/backtester/backtester-cursor.ts +0 -47
  451. package/src/adapter/backtester/backtester-streamer.spec.ts +0 -60
  452. package/src/adapter/backtester/backtester-streamer.ts +0 -155
  453. package/src/adapter/backtester/error.ts +0 -7
  454. package/src/adapter/backtester/index.ts +0 -2
  455. package/src/adapter/error.ts +0 -13
  456. package/src/adapter/index.ts +0 -4
  457. package/src/adapter/paper/engine/paper-engine.spec.ts +0 -116
  458. package/src/adapter/paper/engine/paper-engine.ts +0 -151
  459. package/src/adapter/paper/index.ts +0 -2
  460. package/src/adapter/paper/paper-adapter.ts +0 -111
  461. package/src/cli/error.ts +0 -5
  462. package/src/cli/test.ts +0 -40
  463. package/src/domain/balance-operator.spec.ts +0 -26
  464. package/src/domain/balance-operator.ts +0 -15
  465. package/src/domain/balance.spec.ts +0 -116
  466. package/src/domain/balance.ts +0 -123
  467. package/src/domain/component.ts +0 -6
  468. package/src/domain/error.ts +0 -27
  469. package/src/domain/index.ts +0 -21
  470. package/src/domain/instrument-operator.spec.ts +0 -35
  471. package/src/domain/instrument-operator.ts +0 -25
  472. package/src/domain/order-operator.spec.ts +0 -85
  473. package/src/domain/order-operator.ts +0 -23
  474. package/src/domain/order.spec.ts +0 -43
  475. package/src/domain/order.ts +0 -68
  476. package/src/domain/orderbook-operator.spec.ts +0 -40
  477. package/src/domain/orderbook-operator.ts +0 -15
  478. package/src/domain/orderbook.spec.ts +0 -26
  479. package/src/domain/orderbook.ts +0 -30
  480. package/src/domain/position-operator.spec.ts +0 -64
  481. package/src/domain/position-operator.ts +0 -71
  482. package/src/domain/position.spec.ts +0 -43
  483. package/src/domain/position.ts +0 -31
  484. package/src/domain/session-builder.ts +0 -158
  485. package/src/domain/session.spec.ts +0 -33
  486. package/src/domain/session.ts +0 -256
  487. package/src/domain/trade-operator.spec.ts +0 -35
  488. package/src/domain/trade-operator.ts +0 -15
  489. package/src/domain/trade.spec.ts +0 -21
  490. package/src/domain/trade.ts +0 -20
  491. package/src/shared/collections.spec.ts +0 -34
  492. package/src/shared/collections.ts +0 -154
  493. package/src/shared/logger.ts +0 -39
  494. package/src/shared/pipe.ts +0 -12
  495. package/src/shared/policy.ts +0 -5
  496. package/src/storage/cache.spec.ts +0 -18
  497. package/src/storage/cache.ts +0 -37
  498. package/src/storage/feed.ts +0 -124
  499. package/src/storage/measurement.ts +0 -56
  500. package/src/store/error.ts +0 -36
  501. package/src/store/index.ts +0 -9
  502. package/src/store/store-balance-event.spec.ts +0 -30
  503. package/src/store/store-balance-event.ts +0 -167
  504. package/src/store/store-event.ts +0 -8
  505. package/src/store/store-instrument-event.spec.ts +0 -26
  506. package/src/store/store-instrument-event.ts +0 -83
  507. package/src/store/store-order-event.spec.ts +0 -32
  508. package/src/store/store-order-event.ts +0 -219
  509. package/src/store/store-orderbook-event.spec.ts +0 -39
  510. package/src/store/store-orderbook-event.ts +0 -56
  511. package/src/store/store-position-event.ts +0 -121
  512. package/src/store/store-state.ts +0 -48
  513. package/src/store/store-trade-event.spec.ts +0 -62
  514. package/src/store/store-trade-event.ts +0 -42
  515. package/src/store/store.spec.ts +0 -182
  516. package/src/store/store.ts +0 -37
  517. package/dist/{domain → component}/ohlc.d.ts +0 -0
  518. package/dist/{domain → component}/ohlc.js +0 -0
  519. package/dist/{domain → component}/timeframe.d.ts +0 -0
  520. package/dist/{domain → component}/timeframe.js +1 -1
  521. /package/src/{domain → component}/timeframe.ts +0 -0
@@ -1,124 +0,0 @@
1
- import { InstrumentSelector } from '../domain';
2
- import { d } from '../shared';
3
- import { OrderbookPatchEvent, TradePatchEvent } from '../store';
4
- import { Storage, StorageDocument, StorageQueryOptions } from './storage';
5
-
6
- export type StorageEvent = TradePatchEvent | OrderbookPatchEvent;
7
-
8
- /**
9
- * Represents a storage supposed to store historical data.
10
- * You can use CLI to fetch and save data in the Feed.
11
- */
12
- export class Feed {
13
- constructor(private readonly storage: Storage) {}
14
-
15
- /**
16
- * Returns all instrument names stored in the feed.
17
- */
18
- index(): Promise<Array<string>> {
19
- return this.storage.index();
20
- }
21
-
22
- /**
23
- *
24
- * @param events
25
- * @returns
26
- */
27
- async save(events: StorageEvent[]): Promise<void> {
28
- const grouped = events.reduce((aggregate, it) => {
29
- const document = this.serializeEvent(it);
30
-
31
- if (!document) {
32
- return aggregate;
33
- }
34
-
35
- if (aggregate[it.instrument.id]) {
36
- aggregate[it.instrument.id].push(document);
37
- } else {
38
- aggregate[it.instrument.id] = [document];
39
- }
40
-
41
- return aggregate;
42
- }, {} as Record<string, StorageDocument[]>);
43
-
44
- for (const instrument in grouped) {
45
- await this.storage.save(instrument, grouped[instrument]);
46
- }
47
- }
48
-
49
- /**
50
- *
51
- * @param instrument
52
- * @param options
53
- * @returns
54
- */
55
- async query(
56
- instrument: InstrumentSelector,
57
- options: StorageQueryOptions
58
- ): Promise<StorageEvent[]> {
59
- const documents = await this.storage.query(instrument.id, options);
60
-
61
- return documents.map(it => this.deserializeEvent(it, instrument));
62
- }
63
-
64
- /**
65
- * Converts a StorageEvent to a persisted StorageDocument.
66
- */
67
- protected serializeEvent(event: StorageEvent): StorageDocument | undefined {
68
- if (event instanceof OrderbookPatchEvent) {
69
- return {
70
- timestamp: event.timestamp,
71
- kind: 'orderbook',
72
- json: JSON.stringify({
73
- ar: event.ask.rate.toString(),
74
- ab: event.ask.quantity.toString(),
75
- br: event.bid.rate.toString(),
76
- bb: event.bid.quantity.toString()
77
- })
78
- };
79
- }
80
-
81
- if (event instanceof TradePatchEvent) {
82
- return {
83
- timestamp: event.timestamp,
84
- kind: 'trade',
85
- json: JSON.stringify({
86
- r: event.rate.toString(),
87
- q: event.quantity.toString()
88
- })
89
- };
90
- }
91
-
92
- return undefined;
93
- }
94
-
95
- /**
96
- * Converts a persisted StorageDocument to a StorageEvent.
97
- */
98
- protected deserializeEvent(
99
- document: StorageDocument,
100
- instrument: InstrumentSelector
101
- ): StorageEvent {
102
- const payload = JSON.parse(document.json);
103
-
104
- if (document.kind === 'trade') {
105
- return new TradePatchEvent(
106
- instrument,
107
- d(payload.r),
108
- d(payload.q),
109
- document.timestamp
110
- );
111
- }
112
-
113
- if (document.kind === 'orderbook') {
114
- return new OrderbookPatchEvent(
115
- instrument,
116
- { rate: d(payload.ar), quantity: d(payload.aq), next: undefined },
117
- { rate: d(payload.bb), quantity: d(payload.bq), next: undefined },
118
- document.timestamp
119
- );
120
- }
121
-
122
- throw new Error(`Unsupported event: ${document.kind}`);
123
- }
124
- }
@@ -1,56 +0,0 @@
1
- import { timestamp } from '../shared';
2
- import { Storage, StorageQueryOptions } from './storage';
3
-
4
- export interface Measure {
5
- timestamp: timestamp;
6
- kind: string;
7
- payload: any;
8
- }
9
-
10
- /**
11
- *
12
- */
13
- export class Measurement {
14
- constructor(private readonly storage: Storage) {}
15
-
16
- /**
17
- *
18
- * @returns
19
- */
20
- async index(): Promise<Array<number>> {
21
- return (await this.storage.index()).map(it => Number(it));
22
- }
23
-
24
- /**
25
- *
26
- * @param session
27
- * @param measurements
28
- * @returns
29
- */
30
- save(session: number, measurements: Measure[]): Promise<void> {
31
- return this.storage.save(
32
- session.toString(),
33
- measurements.map(it => ({
34
- timestamp: it.timestamp,
35
- kind: it.kind,
36
- json: JSON.stringify(it.payload)
37
- }))
38
- );
39
- }
40
-
41
- /**
42
- *
43
- * @param session
44
- * @param options
45
- * @returns
46
- */
47
- async query(session: number, options: StorageQueryOptions): Promise<Measure[]> {
48
- const rows = await this.storage.query(session.toString(), options);
49
-
50
- return rows.map(it => ({
51
- timestamp: it.timestamp,
52
- kind: it.kind,
53
- payload: JSON.parse(it.json)
54
- }));
55
- }
56
- }
@@ -1,36 +0,0 @@
1
- import { AssetSelector, InstrumentSelector, OrderState } from '../domain';
2
-
3
- export function assetNotSupportedError(selector: AssetSelector) {
4
- return new Error(`asset ${selector.id} not supported.`);
5
- }
6
-
7
- export function instrumentNotSubscribedError(selector: InstrumentSelector) {
8
- return new Error(`trying to patch a not subscribed instrument ${selector.id}`);
9
- }
10
-
11
- export function instrumentNotSupportedError(selector: InstrumentSelector) {
12
- return new Error(`instrument ${selector.id} not supported.`);
13
- }
14
-
15
- export function liquidationError() {
16
- return new Error('you have been liquidated.');
17
- }
18
-
19
- export function orderNotFoundError(id: string) {
20
- return new Error(`trying to patch unknown order: ${id}`);
21
- }
22
-
23
- export function balanceNotFoundError(selector: AssetSelector) {
24
- return new Error(`balance not found: ${selector.id}`);
25
- }
26
-
27
- export function orderInvalidStateError(
28
- currentState: OrderState,
29
- requiredStates: OrderState[]
30
- ) {
31
- return new Error(
32
- `order state ${currentState} is not in one of required states: ${requiredStates.join(
33
- ', '
34
- )}`
35
- );
36
- }
@@ -1,9 +0,0 @@
1
- export * from './store';
2
- export * from './store-state';
3
- export * from './store-balance-event';
4
- export * from './store-instrument-event';
5
- export * from './store-order-event';
6
- export * from './store-orderbook-event';
7
- export * from './store-position-event';
8
- export * from './store-trade-event';
9
- export * from './store-event';
@@ -1,30 +0,0 @@
1
- import { Asset, Commission } from '../domain';
2
- import { d, now } from '../shared';
3
- import { Store } from '.';
4
- import { BalancePatchEvent } from './store-balance-event';
5
- import { InstrumentPatchEvent } from './store-instrument-event';
6
-
7
- describe('BalancePatchEvent', () => {
8
- test('should patch a store', () => {
9
- const base = new Asset('de30', 'cex', 2);
10
- const quote = new Asset('usd', 'cex', 2);
11
- const timestamp = now();
12
- const store = new Store();
13
- let component;
14
-
15
- store.changes$.subscribe(it => (component = it));
16
-
17
- store.dispatch(
18
- new InstrumentPatchEvent(timestamp, base, quote, new Commission(d.Zero, d.Zero), '')
19
- );
20
- store.dispatch(new BalancePatchEvent(base, d(100), d.Zero, timestamp));
21
-
22
- const balance = store.snapshot.balance.get(base.id) ?? fail();
23
-
24
- expect(balance).toEqual(component);
25
- expect(balance.free).toEqual(d(100));
26
- expect(balance.locked).toEqual(d.Zero);
27
- expect(balance.timestamp).toEqual(timestamp);
28
- expect(store.snapshot.timestamp).toEqual(timestamp);
29
- });
30
- });
@@ -1,167 +0,0 @@
1
- import { AssetSelector, Balance, InstrumentSelector } from '../domain';
2
- import { decimal, timestamp } from '../shared';
3
- import {
4
- assetNotSupportedError,
5
- balanceNotFoundError,
6
- instrumentNotSubscribedError,
7
- orderNotFoundError
8
- } from './error';
9
- import { StoreEvent } from './store-event';
10
- import { State, StateChangeTracker } from './store-state';
11
-
12
- /**
13
- * Updates the free and freezed balance of the given asset.
14
- */
15
- export class BalancePatchEvent implements StoreEvent {
16
- constructor(
17
- readonly asset: AssetSelector,
18
- readonly free: decimal,
19
- readonly freezed: decimal,
20
- readonly timestamp: timestamp
21
- ) {}
22
-
23
- handle(state: State, changes: StateChangeTracker) {
24
- /*
25
- * skip not tradeable assets (for example, you can have an unlisted
26
- * asset in your wallet).
27
- */
28
- const asset = state.universe.asset.get(this.asset.id);
29
- if (!asset) {
30
- return;
31
- }
32
-
33
- const balance = state.balance.tryGetOrSet(this.asset.id, () => new Balance(0, asset));
34
-
35
- balance.timestamp = this.timestamp;
36
- balance.set(this.free, this.freezed);
37
-
38
- state.timestamp = this.timestamp;
39
-
40
- changes.commit(balance);
41
- }
42
- }
43
-
44
- /**
45
- *
46
- */
47
- export class BalanceTransactEvent implements StoreEvent {
48
- constructor(
49
- readonly asset: AssetSelector,
50
- readonly amount: decimal,
51
- readonly timestamp: timestamp
52
- ) {}
53
-
54
- handle(state: State, changes: StateChangeTracker) {
55
- const asset = state.universe.asset.get(this.asset.id);
56
- if (!asset) {
57
- throw assetNotSupportedError(this.asset);
58
- }
59
-
60
- const balance = state.balance.tryGetOrSet(this.asset.id, () => new Balance(0, asset));
61
-
62
- balance.timestamp = this.timestamp;
63
- balance.account(this.amount);
64
-
65
- state.timestamp = this.timestamp;
66
-
67
- changes.commit(balance);
68
- }
69
- }
70
-
71
- /**
72
- *
73
- */
74
- export class BalanceLockOrderEvent implements StoreEvent {
75
- constructor(
76
- readonly orderId: string,
77
- readonly instrument: InstrumentSelector,
78
- readonly timestamp: timestamp
79
- ) {}
80
-
81
- handle(state: State, changes: StateChangeTracker) {
82
- const orders = state.order.get(this.instrument.id);
83
- if (!orders) {
84
- throw instrumentNotSubscribedError(this.instrument);
85
- }
86
-
87
- const order = orders.get(this.orderId);
88
- if (!order) {
89
- throw orderNotFoundError(this.orderId);
90
- }
91
-
92
- const base = state.balance.get(order.instrument.base.id);
93
- if (!base) {
94
- throw balanceNotFoundError(order.instrument.base);
95
- }
96
-
97
- const quote = state.balance.get(order.instrument.quote.id);
98
- if (!quote) {
99
- throw balanceNotFoundError(order.instrument.quote);
100
- }
101
-
102
- const balanceToLock = order.calculateBalanceToLock(base, quote);
103
-
104
- state.timestamp = this.timestamp;
105
-
106
- if (balanceToLock.base?.greaterThan(0)) {
107
- base.timestamp = this.timestamp;
108
- base.lock(this.orderId, balanceToLock.base);
109
-
110
- changes.commit(base);
111
- }
112
-
113
- if (balanceToLock.quote?.greaterThan(0)) {
114
- quote.timestamp = this.timestamp;
115
- quote.lock(this.orderId, balanceToLock.quote);
116
-
117
- changes.commit(quote);
118
- }
119
- }
120
- }
121
-
122
- /**
123
- *
124
- */
125
- export class BalanceUnlockOrderEvent implements StoreEvent {
126
- constructor(
127
- readonly orderId: string,
128
- readonly instrument: InstrumentSelector,
129
- readonly timestamp: timestamp
130
- ) {}
131
-
132
- handle(state: State, changes: StateChangeTracker) {
133
- const orders = state.order.get(this.instrument.id);
134
- if (!orders) {
135
- throw instrumentNotSubscribedError(this.instrument);
136
- }
137
-
138
- const order = orders.get(this.orderId);
139
- if (!order) {
140
- throw orderNotFoundError(this.orderId);
141
- }
142
-
143
- const base = state.balance.get(order.instrument.base.id);
144
- if (!base) {
145
- throw balanceNotFoundError(order.instrument.base);
146
- }
147
-
148
- const quote = state.balance.get(order.instrument.quote.id);
149
- if (!quote) {
150
- throw balanceNotFoundError(order.instrument.quote);
151
- }
152
-
153
- state.timestamp = this.timestamp;
154
-
155
- if (base.tryUnlock(this.orderId)) {
156
- base.timestamp = this.timestamp;
157
-
158
- changes.commit(base);
159
- }
160
-
161
- if (quote.tryUnlock(this.orderId)) {
162
- quote.timestamp = this.timestamp;
163
-
164
- changes.commit(quote);
165
- }
166
- }
167
- }
@@ -1,8 +0,0 @@
1
- import { timestamp } from '../shared';
2
- import { State, StateChangeTracker } from './store-state';
3
-
4
- export interface StoreEvent {
5
- timestamp: timestamp;
6
-
7
- handle(state: State, changes: StateChangeTracker): void;
8
- }
@@ -1,26 +0,0 @@
1
- import { Asset, Commission } from '../domain';
2
- import { d, now } from '../shared';
3
- import { Store } from './store';
4
- import { InstrumentPatchEvent } from './store-instrument-event';
5
-
6
- describe('InstrumentPatchEvent', () => {
7
- test('should patch a store', () => {
8
- const timestamp = now();
9
- const store = new Store();
10
- const base = new Asset('de30', 'cex', 2);
11
- const quote = new Asset('usd', 'cex', 2);
12
-
13
- store.dispatch(
14
- new InstrumentPatchEvent(timestamp, base, quote, new Commission(d.Zero, d.Zero), '')
15
- );
16
-
17
- const { universe } = store.snapshot;
18
- const instrument = universe.instrument.get('cex:de30-usd') ?? fail();
19
-
20
- expect(instrument.base).toEqual(base);
21
- expect(instrument.quote).toEqual(quote);
22
- expect(instrument.timestamp).toEqual(timestamp);
23
- expect(universe.instrument.asReadonlyArray().length).toEqual(1);
24
- expect(universe.asset.asReadonlyArray().length).toEqual(2);
25
- });
26
- });
@@ -1,83 +0,0 @@
1
- import { Asset, Commission, Instrument, InstrumentSelector } from '../domain';
2
- import { timestamp } from '../shared';
3
- import { State, StateChangeTracker } from '.';
4
- import { assetNotSupportedError, instrumentNotSupportedError } from './error';
5
- import { StoreEvent } from './store-event';
6
- import { InnerSet } from './store-state';
7
-
8
- export class InstrumentPatchEvent implements StoreEvent {
9
- constructor(
10
- readonly timestamp: timestamp,
11
- readonly base: Asset,
12
- readonly quote: Asset,
13
- readonly commission: Commission,
14
- readonly raw: string,
15
- readonly leverage?: number
16
- ) {}
17
-
18
- handle(state: State, changes: StateChangeTracker): void {
19
- const selector = new InstrumentSelector(
20
- this.base.name,
21
- this.quote.name,
22
- this.base.adapterName
23
- );
24
-
25
- const instrument = state.universe.instrument.tryGetOrSet(selector.id, () => {
26
- state.universe.asset.tryGetOrSet(
27
- this.base.id,
28
- () => new Asset(this.base.name, this.base.adapterName, 8)
29
- );
30
-
31
- state.universe.asset.tryGetOrSet(
32
- this.quote.id,
33
- () => new Asset(this.quote.name, this.quote.adapterName, 8)
34
- );
35
-
36
- state.order.tryGetOrSet(selector.id, () => new InnerSet(selector.id));
37
-
38
- return new Instrument(0, this.base, this.quote, this.raw, Commission.Zero);
39
- });
40
-
41
- instrument.timestamp = this.timestamp;
42
- instrument.commission = this.commission;
43
-
44
- if (this.leverage) {
45
- instrument.leverage = this.leverage;
46
- }
47
-
48
- changes.commit(instrument);
49
- }
50
- }
51
-
52
- export class InstrumentSubscriptionEvent implements StoreEvent {
53
- constructor(
54
- readonly timestamp: timestamp,
55
- readonly instrument: InstrumentSelector,
56
- readonly subscribed: boolean
57
- ) {}
58
-
59
- handle(state: State, changes: StateChangeTracker): void {
60
- const instrument = state.universe.instrument.get(this.instrument.id);
61
- if (!instrument) {
62
- throw instrumentNotSupportedError(this.instrument);
63
- }
64
-
65
- if (this.subscribed) {
66
- const base = state.universe.asset.get(instrument.base.id);
67
- if (!base) {
68
- throw assetNotSupportedError(instrument.base);
69
- }
70
-
71
- const quote = state.universe.asset.get(instrument.quote.id);
72
- if (!quote) {
73
- throw assetNotSupportedError(instrument.quote);
74
- }
75
-
76
- state.subscription.instrument.upsert(instrument);
77
- state.subscription.asset.upsert(base);
78
- state.subscription.asset.upsert(quote);
79
- }
80
-
81
- changes.commit(instrument);
82
- }
83
- }
@@ -1,32 +0,0 @@
1
- import { Asset, Commission, Instrument, Order } from '../domain';
2
- import { d, now } from '../shared';
3
- import { Store } from '.';
4
- import { OrderLoadEvent } from './store-order-event';
5
-
6
- describe('OrderLoadEvent', () => {
7
- const instrument = new Instrument(
8
- 0,
9
- new Asset('btc', 'binance', 8),
10
- new Asset('usdt', 'binance', 2),
11
- 'binance:btc-usdt',
12
- Commission.Zero
13
- );
14
-
15
- test('should load order to store', () => {
16
- const timestamp = now();
17
- const store = new Store();
18
- const order = new Order(0, '1', instrument, d(1.0), 0);
19
-
20
- order.state = 'PENDING';
21
-
22
- store.snapshot.universe.instrument.upsert(instrument);
23
- store.snapshot.subscription.instrument.upsert(instrument);
24
-
25
- store.dispatch(new OrderLoadEvent(order, timestamp));
26
-
27
- const pendingOrder = store.snapshot.order.get(instrument.id)?.get('1') ?? fail();
28
-
29
- expect(store.snapshot.order.asReadonlyArray().length).toEqual(1);
30
- expect(pendingOrder).toEqual(order);
31
- });
32
- });