@quantform/core 0.3.252 → 0.3.256
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.
- package/README.md +1 -1
- package/dist/adapter/backtester/backtester-cursor.spec.js.map +1 -1
- package/dist/bootstrap.js +2 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/store/event/store-balance.event.d.ts +5 -6
- package/dist/store/event/store-balance.event.js +8 -8
- package/dist/store/event/store-balance.event.js.map +1 -1
- package/dist/store/event/store-candle.event.d.ts +2 -1
- package/dist/store/event/store-candle.event.js +25 -19
- package/dist/store/event/store-candle.event.js.map +1 -1
- package/dist/store/event/store-candle.event.spec.js +7 -8
- package/dist/store/event/store-candle.event.spec.js.map +1 -1
- package/dist/store/event/store-instrument.event.d.ts +6 -6
- package/dist/store/event/store-instrument.event.js +7 -7
- package/dist/store/event/store-instrument.event.js.map +1 -1
- package/dist/store/event/store-order.event.d.ts +9 -9
- package/dist/store/event/store-order.event.js +16 -16
- package/dist/store/event/store-order.event.js.map +1 -1
- package/dist/store/event/store-order.event.spec.js +7 -7
- package/dist/store/event/store-order.event.spec.js.map +1 -1
- package/dist/store/event/store-orderbook.event.d.ts +2 -3
- package/dist/store/event/store-orderbook.event.js +2 -2
- package/dist/store/event/store-orderbook.event.js.map +1 -1
- package/dist/store/event/store-position.event.d.ts +3 -3
- package/dist/store/event/store-position.event.js +6 -5
- package/dist/store/event/store-position.event.js.map +1 -1
- package/dist/store/event/store-trade.event.d.ts +2 -3
- package/dist/store/event/store-trade.event.js +2 -2
- package/dist/store/event/store-trade.event.js.map +1 -1
- package/dist/store/event/store-trade.event.spec.js +16 -17
- package/dist/store/event/store-trade.event.spec.js.map +1 -1
- package/dist/store/store.d.ts +23 -20
- package/dist/store/store.js +29 -28
- package/dist/store/store.js.map +1 -1
- package/dist/store/store.state.d.ts +5 -1
- package/dist/store/store.state.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/adapter/backtester/backtester-cursor.spec.ts +2 -2
- package/src/adapter/backtester/backtester-streamer.ts +1 -1
- package/src/bootstrap.ts +4 -1
- package/src/store/event/store-balance.event.ts +25 -9
- package/src/store/event/store-candle.event.spec.ts +8 -10
- package/src/store/event/store-candle.event.ts +44 -30
- package/src/store/event/store-instrument.event.ts +12 -7
- package/src/store/event/store-order.event.spec.ts +8 -8
- package/src/store/event/store-order.event.ts +46 -17
- package/src/store/event/store-orderbook.event.ts +7 -3
- package/src/store/event/store-position.event.ts +15 -7
- package/src/store/event/store-trade.event.spec.ts +18 -20
- package/src/store/event/store-trade.event.ts +7 -3
- package/src/store/store.state.ts +8 -2
- package/src/store/store.ts +33 -31
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-cursor.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-cursor.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"backtester-cursor.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-cursor.spec.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAAsD;AACtD,6CAAoD;AACpD,2DAAuD;AAEvD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC,IAAI,yBAAe,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,oCAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACzC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -31,7 +31,8 @@ class Bootstrap {
|
|
|
31
31
|
const { backtester } = this.descriptor.options;
|
|
32
32
|
const streamer = new backtester_1.BacktesterStreamer(store, feed, backtester, listener);
|
|
33
33
|
const aggregate = new adapter_1.AdapterAggregate(this.descriptor.adapter.map(it => new paper_1.PaperAdapter(new backtester_1.BacktesterAdapter(it, streamer), store, backtester)), store);
|
|
34
|
-
|
|
34
|
+
const session = new session_1.Session(store, aggregate, this.descriptor);
|
|
35
|
+
return [session, streamer];
|
|
35
36
|
}
|
|
36
37
|
paper() {
|
|
37
38
|
if (!this.descriptor.options) {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;AAAA,qDAI8B;AAC9B,uCAA6C;AAC7C,2CAA+C;AAC/C,uCAAuD;AACvD,mCAAgC;AAEhC,MAAa,SAAS;IACpB,YAAqB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAMtD,YAAY,CAAC,EAAW;QACtB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SACzB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,iBAAiB,CAAC,IAAa,EAAE,EAAW;QAC1C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;SAChD;QAED,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,QAAQ,CAAC,QAA6B;QACpC,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAE/C,MAAM,QAAQ,GAAG,IAAI,+BAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;AAAA,qDAI8B;AAC9B,uCAA6C;AAC7C,2CAA+C;AAC/C,uCAAuD;AACvD,mCAAgC;AAEhC,MAAa,SAAS;IACpB,YAAqB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAMtD,YAAY,CAAC,EAAW;QACtB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SACzB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,iBAAiB,CAAC,IAAa,EAAE,EAAW;QAC1C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;SAChD;QAED,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,QAAQ,CAAC,QAA6B;QACpC,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAE/C,MAAM,QAAQ,GAAG,IAAI,+BAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,SAAS,GAAG,IAAI,0BAAgB,CACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CACzB,EAAE,CAAC,EAAE,CAAC,IAAI,oBAAY,CAAC,IAAI,8BAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAC/E,EACD,KAAK,CACN,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/D,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAMD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;gBAC9B,OAAO,EAAE,EAAE;aACZ,CAAC;SACH;QAED,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAE1C,MAAM,SAAS,GAAG,IAAI,0BAAgB,CACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,oBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EACrE,KAAK,CACN,CAAC;QAEF,OAAO,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAMD,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,0BAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEvE,OAAO,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;CACF;AA5FD,8BA4FC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { AssetSelector } from '../../domain/asset';
|
|
3
|
-
import {
|
|
4
|
-
import { State } from '../store.state';
|
|
3
|
+
import { State, StateChangeTracker } from '../store.state';
|
|
5
4
|
import { StoreEvent } from './store.event';
|
|
6
5
|
export declare class BalancePatchEvent implements StoreEvent {
|
|
7
6
|
readonly asset: AssetSelector;
|
|
@@ -11,7 +10,7 @@ export declare class BalancePatchEvent implements StoreEvent {
|
|
|
11
10
|
type: string;
|
|
12
11
|
constructor(asset: AssetSelector, free: number, freezed: number, timestamp: timestamp);
|
|
13
12
|
}
|
|
14
|
-
export declare function BalancePatchEventHandler(event: BalancePatchEvent, state: State):
|
|
13
|
+
export declare function BalancePatchEventHandler(event: BalancePatchEvent, state: State, changes: StateChangeTracker): void;
|
|
15
14
|
export declare class BalanceTransactEvent implements StoreEvent {
|
|
16
15
|
readonly asset: AssetSelector;
|
|
17
16
|
readonly amount: number;
|
|
@@ -19,7 +18,7 @@ export declare class BalanceTransactEvent implements StoreEvent {
|
|
|
19
18
|
type: string;
|
|
20
19
|
constructor(asset: AssetSelector, amount: number, timestamp: timestamp);
|
|
21
20
|
}
|
|
22
|
-
export declare function BalanceTransactEventHandler(event: BalanceTransactEvent, state: State):
|
|
21
|
+
export declare function BalanceTransactEventHandler(event: BalanceTransactEvent, state: State, changes: StateChangeTracker): void;
|
|
23
22
|
export declare class BalanceFreezEvent implements StoreEvent {
|
|
24
23
|
readonly asset: AssetSelector;
|
|
25
24
|
readonly amount: number;
|
|
@@ -27,7 +26,7 @@ export declare class BalanceFreezEvent implements StoreEvent {
|
|
|
27
26
|
type: string;
|
|
28
27
|
constructor(asset: AssetSelector, amount: number, timestamp: timestamp);
|
|
29
28
|
}
|
|
30
|
-
export declare function BalanceFreezEventHandler(event: BalanceFreezEvent, state: State):
|
|
29
|
+
export declare function BalanceFreezEventHandler(event: BalanceFreezEvent, state: State, changes: StateChangeTracker): void;
|
|
31
30
|
export declare class BalanceUnfreezEvent implements StoreEvent {
|
|
32
31
|
readonly asset: AssetSelector;
|
|
33
32
|
readonly amount: number;
|
|
@@ -35,4 +34,4 @@ export declare class BalanceUnfreezEvent implements StoreEvent {
|
|
|
35
34
|
type: string;
|
|
36
35
|
constructor(asset: AssetSelector, amount: number, timestamp: timestamp);
|
|
37
36
|
}
|
|
38
|
-
export declare function BalanceUnfreezEventHandler(event: BalanceUnfreezEvent, state: State):
|
|
37
|
+
export declare function BalanceUnfreezEventHandler(event: BalanceUnfreezEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -27,7 +27,7 @@ BalancePatchEvent = __decorate([
|
|
|
27
27
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number, Number])
|
|
28
28
|
], BalancePatchEvent);
|
|
29
29
|
exports.BalancePatchEvent = BalancePatchEvent;
|
|
30
|
-
function BalancePatchEventHandler(event, state) {
|
|
30
|
+
function BalancePatchEventHandler(event, state, changes) {
|
|
31
31
|
let balance = state.balance[event.asset.toString()];
|
|
32
32
|
if (!balance) {
|
|
33
33
|
const asset = state.universe.asset[event.asset.toString()];
|
|
@@ -39,7 +39,7 @@ function BalancePatchEventHandler(event, state) {
|
|
|
39
39
|
balance.timestamp = event.timestamp;
|
|
40
40
|
balance.set(event.free, event.freezed);
|
|
41
41
|
state.timestamp = event.timestamp;
|
|
42
|
-
|
|
42
|
+
changes.commit(balance);
|
|
43
43
|
}
|
|
44
44
|
exports.BalancePatchEventHandler = BalancePatchEventHandler;
|
|
45
45
|
let BalanceTransactEvent = class BalanceTransactEvent {
|
|
@@ -55,7 +55,7 @@ BalanceTransactEvent = __decorate([
|
|
|
55
55
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number])
|
|
56
56
|
], BalanceTransactEvent);
|
|
57
57
|
exports.BalanceTransactEvent = BalanceTransactEvent;
|
|
58
|
-
function BalanceTransactEventHandler(event, state) {
|
|
58
|
+
function BalanceTransactEventHandler(event, state, changes) {
|
|
59
59
|
let balance = state.balance[event.asset.toString()];
|
|
60
60
|
if (!balance) {
|
|
61
61
|
const asset = state.universe.asset[event.asset.toString()];
|
|
@@ -65,7 +65,7 @@ function BalanceTransactEventHandler(event, state) {
|
|
|
65
65
|
balance.timestamp = event.timestamp;
|
|
66
66
|
balance.transact(event.amount);
|
|
67
67
|
state.timestamp = event.timestamp;
|
|
68
|
-
|
|
68
|
+
changes.commit(balance);
|
|
69
69
|
}
|
|
70
70
|
exports.BalanceTransactEventHandler = BalanceTransactEventHandler;
|
|
71
71
|
let BalanceFreezEvent = class BalanceFreezEvent {
|
|
@@ -81,7 +81,7 @@ BalanceFreezEvent = __decorate([
|
|
|
81
81
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number])
|
|
82
82
|
], BalanceFreezEvent);
|
|
83
83
|
exports.BalanceFreezEvent = BalanceFreezEvent;
|
|
84
|
-
function BalanceFreezEventHandler(event, state) {
|
|
84
|
+
function BalanceFreezEventHandler(event, state, changes) {
|
|
85
85
|
const balance = state.balance[event.asset.toString()];
|
|
86
86
|
if (!balance) {
|
|
87
87
|
throw new Error('invalid balance');
|
|
@@ -89,7 +89,7 @@ function BalanceFreezEventHandler(event, state) {
|
|
|
89
89
|
balance.timestamp = event.timestamp;
|
|
90
90
|
balance.freez(event.amount);
|
|
91
91
|
state.timestamp = event.timestamp;
|
|
92
|
-
|
|
92
|
+
changes.commit(balance);
|
|
93
93
|
}
|
|
94
94
|
exports.BalanceFreezEventHandler = BalanceFreezEventHandler;
|
|
95
95
|
let BalanceUnfreezEvent = class BalanceUnfreezEvent {
|
|
@@ -105,7 +105,7 @@ BalanceUnfreezEvent = __decorate([
|
|
|
105
105
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number])
|
|
106
106
|
], BalanceUnfreezEvent);
|
|
107
107
|
exports.BalanceUnfreezEvent = BalanceUnfreezEvent;
|
|
108
|
-
function BalanceUnfreezEventHandler(event, state) {
|
|
108
|
+
function BalanceUnfreezEventHandler(event, state, changes) {
|
|
109
109
|
const balance = state.balance[event.asset.toString()];
|
|
110
110
|
if (!balance) {
|
|
111
111
|
throw new Error('invalid balance');
|
|
@@ -113,7 +113,7 @@ function BalanceUnfreezEventHandler(event, state) {
|
|
|
113
113
|
balance.timestamp = event.timestamp;
|
|
114
114
|
balance.unfreez(event.amount);
|
|
115
115
|
state.timestamp = event.timestamp;
|
|
116
|
-
|
|
116
|
+
changes.commit(balance);
|
|
117
117
|
}
|
|
118
118
|
exports.BalanceUnfreezEventHandler = BalanceUnfreezEventHandler;
|
|
119
119
|
//# sourceMappingURL=store-balance.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-balance.event.js","sourceRoot":"","sources":["../../../src/store/event/store-balance.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,8CAAmD;AACnD,kDAA+C;AAQ/C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAG5B,YACW,KAAoB,EACpB,IAAY,EACZ,OAAe,EACf,SAAoB;QAHpB,UAAK,GAAL,KAAK,CAAe;QACpB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAW;QAN/B,SAAI,GAAG,eAAe,CAAC;IAOpB,CAAC;CACL,CAAA;AATY,iBAAiB;IAD7B,aAAK;qCAKc,qBAAa;GAJpB,iBAAiB,CAS7B;AATY,8CAAiB;AAc9B,SAAgB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"store-balance.event.js","sourceRoot":"","sources":["../../../src/store/event/store-balance.event.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { timestamp } from '../../shared/datetime';
|
|
|
2
2
|
import { InstrumentSelector } from '../../domain';
|
|
3
3
|
import { State } from '../store.state';
|
|
4
4
|
import { StoreEvent } from './store.event';
|
|
5
|
+
import { StateChangeTracker } from '..';
|
|
5
6
|
export declare class CandleEvent implements StoreEvent {
|
|
6
7
|
readonly instrument: InstrumentSelector;
|
|
7
8
|
readonly timeframe: number;
|
|
@@ -14,4 +15,4 @@ export declare class CandleEvent implements StoreEvent {
|
|
|
14
15
|
type: string;
|
|
15
16
|
constructor(instrument: InstrumentSelector, timeframe: number, open: number, high: number, low: number, close: number, volume: number, timestamp: timestamp);
|
|
16
17
|
}
|
|
17
|
-
export declare function CandleEventHandler(event: CandleEvent, state: State
|
|
18
|
+
export declare function CandleEventHandler(event: CandleEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -32,26 +32,32 @@ CandleEvent = __decorate([
|
|
|
32
32
|
__metadata("design:paramtypes", [domain_1.InstrumentSelector, Number, Number, Number, Number, Number, Number, Number])
|
|
33
33
|
], CandleEvent);
|
|
34
34
|
exports.CandleEvent = CandleEvent;
|
|
35
|
-
function CandleEventHandler(event, state) {
|
|
35
|
+
function CandleEventHandler(event, state, changes) {
|
|
36
36
|
const instrument = state.universe.instrument[event.instrument.toString()];
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
37
|
+
const patch = (timestamp, rate) => {
|
|
38
|
+
(0, store_trade_event_1.TradePatchEventHandler)({
|
|
39
|
+
type: 'trade-patch',
|
|
40
|
+
instrument: event.instrument,
|
|
41
|
+
quantity: event.volume,
|
|
42
|
+
rate,
|
|
43
|
+
timestamp
|
|
44
|
+
}, state, changes);
|
|
45
|
+
(0, store_orderbook_event_1.OrderbookPatchEventHandler)({
|
|
46
|
+
type: 'orderbook-patch',
|
|
47
|
+
instrument: event.instrument,
|
|
48
|
+
bestAskQuantity: instrument.base.fixed(event.volume * 0.5),
|
|
49
|
+
bestAskRate: rate,
|
|
50
|
+
bestBidQuantity: instrument.base.fixed(event.volume * 0.5),
|
|
51
|
+
bestBidRate: rate,
|
|
52
|
+
timestamp
|
|
53
|
+
}, state, changes);
|
|
54
|
+
state.timestamp = event.timestamp;
|
|
55
|
+
changes.commitPendingChanges();
|
|
56
|
+
};
|
|
57
|
+
patch(event.timestamp, instrument.quote.fixed(event.open));
|
|
58
|
+
patch(event.timestamp, instrument.quote.fixed(event.high));
|
|
59
|
+
patch(event.timestamp, instrument.quote.fixed(event.low));
|
|
60
|
+
patch(event.timestamp, instrument.quote.fixed(event.close));
|
|
55
61
|
}
|
|
56
62
|
exports.CandleEventHandler = CandleEventHandler;
|
|
57
63
|
//# sourceMappingURL=store-candle.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-candle.event.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAA6D;AAC7D,mEAAqE;AAErE,yCAAkD;AAGlD,8CAA2C;
|
|
1
|
+
{"version":3,"file":"store-candle.event.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAA6D;AAC7D,mEAAqE;AAErE,yCAAkD;AAGlD,8CAA2C;AAI3C,IAAa,WAAW,GAAxB,MAAa,WAAW;IAGtB,YACW,UAA8B,EAC9B,SAAiB,EACjB,IAAY,EACZ,IAAY,EACZ,GAAW,EACX,KAAa,EACb,MAAc,EACd,SAAoB;QAPpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,cAAS,GAAT,SAAS,CAAQ;QACjB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAW;QAV/B,SAAI,GAAG,QAAQ,CAAC;IAWb,CAAC;CACL,CAAA;AAbY,WAAW;IADvB,aAAK;qCAKmB,2BAAkB;GAJ9B,WAAW,CAavB;AAbY,kCAAW;AAexB,SAAgB,kBAAkB,CAChC,KAAkB,EAClB,KAAY,EACZ,OAA2B;IAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAE,EAAE;QAEhD,IAAA,0CAAsB,EACpB;YACE,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,IAAI;YACJ,SAAS;SACV,EACD,KAAK,EACL,OAAO,CACR,CAAC;QAGF,IAAA,kDAA0B,EACxB;YACE,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC1D,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC1D,WAAW,EAAE,IAAI;YACjB,SAAS;SACV,EACD,KAAK,EACL,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AA7CD,gDA6CC"}
|
|
@@ -2,23 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const domain_1 = require("../../domain");
|
|
4
4
|
const _1 = require(".");
|
|
5
|
-
const store_state_1 = require("../store.state");
|
|
6
5
|
const shared_1 = require("../../shared");
|
|
6
|
+
const store_1 = require("../store");
|
|
7
7
|
const instrument = new domain_1.Instrument(new domain_1.Asset('btc', 'binance', 8), new domain_1.Asset('usdt', 'binance', 2), 'binance:btc-usdt');
|
|
8
8
|
describe('candle patch event tests', () => {
|
|
9
9
|
test('should patch trade object', () => {
|
|
10
10
|
const timestamp = (0, shared_1.now)();
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const trade = state.trade[instrument.toString()];
|
|
11
|
+
const store = new store_1.Store();
|
|
12
|
+
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
13
|
+
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
14
|
+
store.dispatch(new _1.CandleEvent(instrument, 1, 1, 1, 1, 1, 1, timestamp));
|
|
15
|
+
const trade = store.snapshot.trade[instrument.toString()];
|
|
17
16
|
expect(trade.timestamp).toEqual(timestamp);
|
|
18
17
|
expect(trade.instrument.toString()).toEqual(instrument.toString());
|
|
19
18
|
expect(trade.rate).toEqual(1);
|
|
20
19
|
expect(trade.quantity).toEqual(1);
|
|
21
|
-
expect(
|
|
20
|
+
expect(store.snapshot.timestamp).toEqual(timestamp);
|
|
22
21
|
});
|
|
23
22
|
});
|
|
24
23
|
//# sourceMappingURL=store-candle.event.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-candle.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.spec.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"store-candle.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.spec.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AACjD,wBAAgC;AAChC,yCAAmC;AACnC,oCAAiC;AAEjC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAC/B,IAAI,cAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAC9B,IAAI,cAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAC/B,kBAAkB,CACnB,CAAC;AAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAG,IAAA,YAAG,GAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAE1B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC;QACvE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC;QAE3E,KAAK,CAAC,QAAQ,CAAC,IAAI,cAAW,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { Asset, Commission } from '../../domain';
|
|
3
|
-
import {
|
|
4
|
-
import { State } from '../../store';
|
|
3
|
+
import { InstrumentSelector } from '../../domain/instrument';
|
|
4
|
+
import { State, StateChangeTracker } from '../../store';
|
|
5
5
|
import { StoreEvent } from './store.event';
|
|
6
6
|
export declare class InstrumentPatchEvent implements StoreEvent {
|
|
7
7
|
readonly timestamp: timestamp;
|
|
8
8
|
readonly base: Asset;
|
|
9
9
|
readonly quote: Asset;
|
|
10
|
-
readonly
|
|
10
|
+
readonly commission: Commission;
|
|
11
11
|
readonly raw: string;
|
|
12
12
|
readonly leverage?: number;
|
|
13
13
|
type: string;
|
|
14
|
-
constructor(timestamp: timestamp, base: Asset, quote: Asset,
|
|
14
|
+
constructor(timestamp: timestamp, base: Asset, quote: Asset, commission: Commission, raw: string, leverage?: number);
|
|
15
15
|
}
|
|
16
|
-
export declare function InstrumentPatchEventHandler(event: InstrumentPatchEvent, state: State):
|
|
16
|
+
export declare function InstrumentPatchEventHandler(event: InstrumentPatchEvent, state: State, changes: StateChangeTracker): void;
|
|
17
17
|
export declare class InstrumentSubscriptionEvent implements StoreEvent {
|
|
18
18
|
readonly timestamp: timestamp;
|
|
19
19
|
readonly instrument: InstrumentSelector;
|
|
@@ -21,4 +21,4 @@ export declare class InstrumentSubscriptionEvent implements StoreEvent {
|
|
|
21
21
|
type: string;
|
|
22
22
|
constructor(timestamp: timestamp, instrument: InstrumentSelector, subscribed: boolean);
|
|
23
23
|
}
|
|
24
|
-
export declare function InstrumentSubscriptionEventHandler(event: InstrumentSubscriptionEvent, state: State):
|
|
24
|
+
export declare function InstrumentSubscriptionEventHandler(event: InstrumentSubscriptionEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -14,11 +14,11 @@ const topic_1 = require("../../shared/topic");
|
|
|
14
14
|
const domain_1 = require("../../domain");
|
|
15
15
|
const instrument_1 = require("../../domain/instrument");
|
|
16
16
|
let InstrumentPatchEvent = class InstrumentPatchEvent {
|
|
17
|
-
constructor(timestamp, base, quote,
|
|
17
|
+
constructor(timestamp, base, quote, commission, raw, leverage) {
|
|
18
18
|
this.timestamp = timestamp;
|
|
19
19
|
this.base = base;
|
|
20
20
|
this.quote = quote;
|
|
21
|
-
this.
|
|
21
|
+
this.commission = commission;
|
|
22
22
|
this.raw = raw;
|
|
23
23
|
this.leverage = leverage;
|
|
24
24
|
this.type = 'instrument-patch';
|
|
@@ -31,7 +31,7 @@ InstrumentPatchEvent = __decorate([
|
|
|
31
31
|
domain_1.Commission, String, Number])
|
|
32
32
|
], InstrumentPatchEvent);
|
|
33
33
|
exports.InstrumentPatchEvent = InstrumentPatchEvent;
|
|
34
|
-
function InstrumentPatchEventHandler(event, state) {
|
|
34
|
+
function InstrumentPatchEventHandler(event, state, changes) {
|
|
35
35
|
const selector = new instrument_1.InstrumentSelector(event.base.name, event.quote.name, event.base.adapter);
|
|
36
36
|
let instrument = state.universe.instrument[selector.toString()];
|
|
37
37
|
if (!instrument) {
|
|
@@ -41,11 +41,11 @@ function InstrumentPatchEventHandler(event, state) {
|
|
|
41
41
|
state.universe.instrument[selector.toString()] = instrument;
|
|
42
42
|
}
|
|
43
43
|
instrument.timestamp = event.timestamp;
|
|
44
|
-
instrument.commission = event.
|
|
44
|
+
instrument.commission = event.commission;
|
|
45
45
|
if (event.leverage) {
|
|
46
46
|
instrument.leverage = event.leverage;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
changes.commit(instrument);
|
|
49
49
|
}
|
|
50
50
|
exports.InstrumentPatchEventHandler = InstrumentPatchEventHandler;
|
|
51
51
|
let InstrumentSubscriptionEvent = class InstrumentSubscriptionEvent {
|
|
@@ -61,7 +61,7 @@ InstrumentSubscriptionEvent = __decorate([
|
|
|
61
61
|
__metadata("design:paramtypes", [Number, instrument_1.InstrumentSelector, Boolean])
|
|
62
62
|
], InstrumentSubscriptionEvent);
|
|
63
63
|
exports.InstrumentSubscriptionEvent = InstrumentSubscriptionEvent;
|
|
64
|
-
function InstrumentSubscriptionEventHandler(event, state) {
|
|
64
|
+
function InstrumentSubscriptionEventHandler(event, state, changes) {
|
|
65
65
|
const instrumentKey = event.instrument.toString();
|
|
66
66
|
if (!(instrumentKey in state.universe.instrument)) {
|
|
67
67
|
throw new Error(`Trying to patch not existing instrument: ${instrumentKey}`);
|
|
@@ -72,7 +72,7 @@ function InstrumentSubscriptionEventHandler(event, state) {
|
|
|
72
72
|
state.subscription.asset[instrument.base.toString()] = instrument.base;
|
|
73
73
|
state.subscription.asset[instrument.quote.toString()] = instrument.quote;
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
changes.commit(instrument);
|
|
76
76
|
}
|
|
77
77
|
exports.InstrumentSubscriptionEventHandler = InstrumentSubscriptionEventHandler;
|
|
78
78
|
//# sourceMappingURL=store-instrument.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-instrument.event.js","sourceRoot":"","sources":["../../../src/store/event/store-instrument.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,yCAAiD;AACjD,wDAAyE;AAKzE,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAG/B,YACW,SAAoB,EACpB,IAAW,EACX,KAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"store-instrument.event.js","sourceRoot":"","sources":["../../../src/store/event/store-instrument.event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { Order } from '../../domain';
|
|
3
|
-
import { State } from '../store.state';
|
|
3
|
+
import { State, StateChangeTracker } from '../store.state';
|
|
4
4
|
import { StoreEvent } from './store.event';
|
|
5
5
|
export declare class OrderLoadEvent implements StoreEvent {
|
|
6
6
|
readonly order: Order;
|
|
@@ -8,21 +8,21 @@ export declare class OrderLoadEvent implements StoreEvent {
|
|
|
8
8
|
type: string;
|
|
9
9
|
constructor(order: Order, timestamp: timestamp);
|
|
10
10
|
}
|
|
11
|
-
export declare function OrderLoadEventHandler(event: OrderLoadEvent, state: State):
|
|
11
|
+
export declare function OrderLoadEventHandler(event: OrderLoadEvent, state: State, changes: StateChangeTracker): void;
|
|
12
12
|
export declare class OrderNewEvent implements StoreEvent {
|
|
13
13
|
readonly order: Order;
|
|
14
14
|
readonly timestamp: timestamp;
|
|
15
15
|
type: string;
|
|
16
16
|
constructor(order: Order, timestamp: timestamp);
|
|
17
17
|
}
|
|
18
|
-
export declare function OrderNewEventHandler(event: OrderNewEvent, state: State):
|
|
18
|
+
export declare function OrderNewEventHandler(event: OrderNewEvent, state: State, changes: StateChangeTracker): void;
|
|
19
19
|
export declare class OrderPendingEvent implements StoreEvent {
|
|
20
20
|
readonly id: string;
|
|
21
21
|
readonly timestamp: timestamp;
|
|
22
22
|
type: string;
|
|
23
23
|
constructor(id: string, timestamp: timestamp);
|
|
24
24
|
}
|
|
25
|
-
export declare function OrderPendingEventHandler(event: OrderPendingEvent, state: State):
|
|
25
|
+
export declare function OrderPendingEventHandler(event: OrderPendingEvent, state: State, changes: StateChangeTracker): void;
|
|
26
26
|
export declare class OrderFilledEvent implements StoreEvent {
|
|
27
27
|
readonly id: string;
|
|
28
28
|
readonly averageExecutionRate: number;
|
|
@@ -30,32 +30,32 @@ export declare class OrderFilledEvent implements StoreEvent {
|
|
|
30
30
|
type: string;
|
|
31
31
|
constructor(id: string, averageExecutionRate: number, timestamp: timestamp);
|
|
32
32
|
}
|
|
33
|
-
export declare function OrderFilledEventHandler(event: OrderFilledEvent, state: State):
|
|
33
|
+
export declare function OrderFilledEventHandler(event: OrderFilledEvent, state: State, changes: StateChangeTracker): void;
|
|
34
34
|
export declare class OrderCancelingEvent implements StoreEvent {
|
|
35
35
|
readonly id: string;
|
|
36
36
|
readonly timestamp: timestamp;
|
|
37
37
|
type: string;
|
|
38
38
|
constructor(id: string, timestamp: timestamp);
|
|
39
39
|
}
|
|
40
|
-
export declare function OrderCancelingEventHandler(event: OrderCancelingEvent, state: State):
|
|
40
|
+
export declare function OrderCancelingEventHandler(event: OrderCancelingEvent, state: State, changes: StateChangeTracker): void;
|
|
41
41
|
export declare class OrderCanceledEvent implements StoreEvent {
|
|
42
42
|
readonly id: string;
|
|
43
43
|
readonly timestamp: timestamp;
|
|
44
44
|
type: string;
|
|
45
45
|
constructor(id: string, timestamp: timestamp);
|
|
46
46
|
}
|
|
47
|
-
export declare function OrderCanceledEventHandler(event: OrderCanceledEvent, state: State):
|
|
47
|
+
export declare function OrderCanceledEventHandler(event: OrderCanceledEvent, state: State, changes: StateChangeTracker): void;
|
|
48
48
|
export declare class OrderCancelFailedEvent implements StoreEvent {
|
|
49
49
|
readonly id: string;
|
|
50
50
|
readonly timestamp: timestamp;
|
|
51
51
|
type: string;
|
|
52
52
|
constructor(id: string, timestamp: timestamp);
|
|
53
53
|
}
|
|
54
|
-
export declare function OrderCancelFailedEventHandler(event: OrderCancelFailedEvent, state: State):
|
|
54
|
+
export declare function OrderCancelFailedEventHandler(event: OrderCancelFailedEvent, state: State, changes: StateChangeTracker): void;
|
|
55
55
|
export declare class OrderRejectedEvent implements StoreEvent {
|
|
56
56
|
readonly id: string;
|
|
57
57
|
readonly timestamp: timestamp;
|
|
58
58
|
type: string;
|
|
59
59
|
constructor(id: string, timestamp: timestamp);
|
|
60
60
|
}
|
|
61
|
-
export declare function OrderRejectedEventHandler(event: OrderRejectedEvent, state: State):
|
|
61
|
+
export declare function OrderRejectedEventHandler(event: OrderRejectedEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -24,7 +24,7 @@ OrderLoadEvent = __decorate([
|
|
|
24
24
|
__metadata("design:paramtypes", [domain_1.Order, Number])
|
|
25
25
|
], OrderLoadEvent);
|
|
26
26
|
exports.OrderLoadEvent = OrderLoadEvent;
|
|
27
|
-
function OrderLoadEventHandler(event, state) {
|
|
27
|
+
function OrderLoadEventHandler(event, state, changes) {
|
|
28
28
|
event.order.timestamp = event.timestamp;
|
|
29
29
|
switch (event.order.state) {
|
|
30
30
|
case 'NEW':
|
|
@@ -42,7 +42,7 @@ function OrderLoadEventHandler(event, state) {
|
|
|
42
42
|
state.order.rejected[event.order.id] = event.order;
|
|
43
43
|
break;
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
changes.commit(event.order);
|
|
46
46
|
}
|
|
47
47
|
exports.OrderLoadEventHandler = OrderLoadEventHandler;
|
|
48
48
|
let OrderNewEvent = class OrderNewEvent {
|
|
@@ -57,14 +57,14 @@ OrderNewEvent = __decorate([
|
|
|
57
57
|
__metadata("design:paramtypes", [domain_1.Order, Number])
|
|
58
58
|
], OrderNewEvent);
|
|
59
59
|
exports.OrderNewEvent = OrderNewEvent;
|
|
60
|
-
function OrderNewEventHandler(event, state) {
|
|
60
|
+
function OrderNewEventHandler(event, state, changes) {
|
|
61
61
|
if (event.order.state != 'NEW') {
|
|
62
62
|
throw new Error(`Order is not new`);
|
|
63
63
|
}
|
|
64
64
|
event.order.createdAt = event.timestamp;
|
|
65
65
|
event.order.timestamp = event.timestamp;
|
|
66
66
|
state.order.pending[event.order.id] = event.order;
|
|
67
|
-
|
|
67
|
+
changes.commit(event.order);
|
|
68
68
|
}
|
|
69
69
|
exports.OrderNewEventHandler = OrderNewEventHandler;
|
|
70
70
|
let OrderPendingEvent = class OrderPendingEvent {
|
|
@@ -79,7 +79,7 @@ OrderPendingEvent = __decorate([
|
|
|
79
79
|
__metadata("design:paramtypes", [String, Number])
|
|
80
80
|
], OrderPendingEvent);
|
|
81
81
|
exports.OrderPendingEvent = OrderPendingEvent;
|
|
82
|
-
function OrderPendingEventHandler(event, state) {
|
|
82
|
+
function OrderPendingEventHandler(event, state, changes) {
|
|
83
83
|
if (!(event.id in state.order.pending)) {
|
|
84
84
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
85
85
|
}
|
|
@@ -89,7 +89,7 @@ function OrderPendingEventHandler(event, state) {
|
|
|
89
89
|
}
|
|
90
90
|
order.state = 'PENDING';
|
|
91
91
|
order.timestamp = event.timestamp;
|
|
92
|
-
|
|
92
|
+
changes.commit(order);
|
|
93
93
|
}
|
|
94
94
|
exports.OrderPendingEventHandler = OrderPendingEventHandler;
|
|
95
95
|
let OrderFilledEvent = class OrderFilledEvent {
|
|
@@ -105,7 +105,7 @@ OrderFilledEvent = __decorate([
|
|
|
105
105
|
__metadata("design:paramtypes", [String, Number, Number])
|
|
106
106
|
], OrderFilledEvent);
|
|
107
107
|
exports.OrderFilledEvent = OrderFilledEvent;
|
|
108
|
-
function OrderFilledEventHandler(event, state) {
|
|
108
|
+
function OrderFilledEventHandler(event, state, changes) {
|
|
109
109
|
if (!(event.id in state.order.pending)) {
|
|
110
110
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
111
111
|
}
|
|
@@ -119,7 +119,7 @@ function OrderFilledEventHandler(event, state) {
|
|
|
119
119
|
order.averageExecutionRate = event.averageExecutionRate;
|
|
120
120
|
delete state.order.pending[event.id];
|
|
121
121
|
state.order.filled[event.id] = order;
|
|
122
|
-
|
|
122
|
+
changes.commit(order);
|
|
123
123
|
}
|
|
124
124
|
exports.OrderFilledEventHandler = OrderFilledEventHandler;
|
|
125
125
|
let OrderCancelingEvent = class OrderCancelingEvent {
|
|
@@ -134,7 +134,7 @@ OrderCancelingEvent = __decorate([
|
|
|
134
134
|
__metadata("design:paramtypes", [String, Number])
|
|
135
135
|
], OrderCancelingEvent);
|
|
136
136
|
exports.OrderCancelingEvent = OrderCancelingEvent;
|
|
137
|
-
function OrderCancelingEventHandler(event, state) {
|
|
137
|
+
function OrderCancelingEventHandler(event, state, changes) {
|
|
138
138
|
if (!(event.id in state.order.pending)) {
|
|
139
139
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
140
140
|
}
|
|
@@ -147,7 +147,7 @@ function OrderCancelingEventHandler(event, state) {
|
|
|
147
147
|
}
|
|
148
148
|
order.state = 'CANCELING';
|
|
149
149
|
order.timestamp = event.timestamp;
|
|
150
|
-
|
|
150
|
+
changes.commit(order);
|
|
151
151
|
}
|
|
152
152
|
exports.OrderCancelingEventHandler = OrderCancelingEventHandler;
|
|
153
153
|
let OrderCanceledEvent = class OrderCanceledEvent {
|
|
@@ -162,7 +162,7 @@ OrderCanceledEvent = __decorate([
|
|
|
162
162
|
__metadata("design:paramtypes", [String, Number])
|
|
163
163
|
], OrderCanceledEvent);
|
|
164
164
|
exports.OrderCanceledEvent = OrderCanceledEvent;
|
|
165
|
-
function OrderCanceledEventHandler(event, state) {
|
|
165
|
+
function OrderCanceledEventHandler(event, state, changes) {
|
|
166
166
|
const order = state.order.pending[event.id];
|
|
167
167
|
if (order.state == 'CANCELED') {
|
|
168
168
|
return;
|
|
@@ -174,7 +174,7 @@ function OrderCanceledEventHandler(event, state) {
|
|
|
174
174
|
order.timestamp = event.timestamp;
|
|
175
175
|
delete state.order.pending[event.id];
|
|
176
176
|
state.order.canceled[event.id] = order;
|
|
177
|
-
|
|
177
|
+
changes.commit(order);
|
|
178
178
|
}
|
|
179
179
|
exports.OrderCanceledEventHandler = OrderCanceledEventHandler;
|
|
180
180
|
let OrderCancelFailedEvent = class OrderCancelFailedEvent {
|
|
@@ -189,14 +189,14 @@ OrderCancelFailedEvent = __decorate([
|
|
|
189
189
|
__metadata("design:paramtypes", [String, Number])
|
|
190
190
|
], OrderCancelFailedEvent);
|
|
191
191
|
exports.OrderCancelFailedEvent = OrderCancelFailedEvent;
|
|
192
|
-
function OrderCancelFailedEventHandler(event, state) {
|
|
192
|
+
function OrderCancelFailedEventHandler(event, state, changes) {
|
|
193
193
|
const order = state.order.pending[event.id];
|
|
194
194
|
if (order.state != 'CANCELING') {
|
|
195
195
|
return;
|
|
196
196
|
}
|
|
197
197
|
order.state = 'PENDING';
|
|
198
198
|
order.timestamp = event.timestamp;
|
|
199
|
-
|
|
199
|
+
changes.commit(order);
|
|
200
200
|
}
|
|
201
201
|
exports.OrderCancelFailedEventHandler = OrderCancelFailedEventHandler;
|
|
202
202
|
let OrderRejectedEvent = class OrderRejectedEvent {
|
|
@@ -211,7 +211,7 @@ OrderRejectedEvent = __decorate([
|
|
|
211
211
|
__metadata("design:paramtypes", [String, Number])
|
|
212
212
|
], OrderRejectedEvent);
|
|
213
213
|
exports.OrderRejectedEvent = OrderRejectedEvent;
|
|
214
|
-
function OrderRejectedEventHandler(event, state) {
|
|
214
|
+
function OrderRejectedEventHandler(event, state, changes) {
|
|
215
215
|
const order = state.order.pending[event.id];
|
|
216
216
|
if (order.state != 'NEW') {
|
|
217
217
|
throw new Error('Order is not new.');
|
|
@@ -220,7 +220,7 @@ function OrderRejectedEventHandler(event, state) {
|
|
|
220
220
|
order.timestamp = event.timestamp;
|
|
221
221
|
delete state.order.pending[event.id];
|
|
222
222
|
state.order.rejected[event.id] = order;
|
|
223
|
-
|
|
223
|
+
changes.commit(order);
|
|
224
224
|
}
|
|
225
225
|
exports.OrderRejectedEventHandler = OrderRejectedEventHandler;
|
|
226
226
|
//# sourceMappingURL=store-order.event.js.map
|