1pub const CMD_ACCOUNT_INFO: u16 = 3020;
15pub const CMD_FUND_BOND_DETAIL_ASSET: u16 = 20086;
17pub const CMD_QUERY_FUND: u16 = 4704;
21pub const CMD_QUERY_POSITION: u16 = 4705;
25pub const CMD_QUERY_ORDER_LIST: u16 = 4708;
27pub const CMD_QUERY_ORDER_FILL_LIST: u16 = 4710;
29pub const CMD_QUERY_ORDER_FILL_INFO: u16 = 4715;
32pub const CMD_QUERY_HISTORY_ORDER_LIST: u16 = 4711;
34pub const CMD_QUERY_HISTORY_ORDER_FILL_LIST: u16 = 4712;
36pub const CMD_MAX_BUY_SELL: u16 = 4713;
38pub const CMD_PLACE_ORDER: u16 = 4701;
40pub const CMD_MODIFY_ORDER: u16 = 4702;
42pub const CMD_CANCEL_ORDER: u16 = 4703;
44pub const CMD_ORDER_CONFIRM: u16 = 4728;
46
47pub const CMD_SIM_QUERY_FUND: u16 = 14704;
49pub const CMD_SIM_QUERY_POSITION: u16 = 14705;
52pub const CMD_SIM_QUERY_ORDER_LIST: u16 = 14708;
54pub const CMD_SIM_QUERY_ORDER_FILL_LIST: u16 = 14710;
56pub const CMD_SIM_QUERY_ORDER_FILL_INFO: u16 = 14715;
58pub const CMD_SIM_QUERY_HISTORY_ORDER_LIST: u16 = 14711;
60pub const CMD_SIM_QUERY_HISTORY_ORDER_FILL_LIST: u16 = 14712;
62pub const CMD_SIM_PLACE_ORDER: u16 = 14701;
64pub const CMD_SIM_MODIFY_ORDER: u16 = 14702;
66pub const CMD_SIM_CANCEL_ORDER: u16 = 14703;
68pub const CMD_SIM_ORDER_CONFIRM: u16 = 14728;
70pub const CMD_SIM_MAX_BUY_SELL: u16 = 14713;
72
73pub const CMD_CRYPTO_FETCH_TRADE_CONFIG: u16 = 20102;
76pub const CMD_CRYPTO_ACCOUNT_INFO: u16 = 20631;
79pub const CMD_CRYPTO_QUERY_ORDER_LIST: u16 = 20621;
82pub const CMD_CRYPTO_QUERY_HISTORY_ORDER_LIST: u16 = 20623;
85pub const CMD_CRYPTO_QUERY_ORDER_INFO: u16 = 20625;
88pub const CMD_CRYPTO_QUERY_ORDER_FILL_DETAIL: u16 = 20624;
91pub const CMD_CRYPTO_QUERY_DEAL_LIST: u16 = 21237;
94pub const CMD_CRYPTO_QUERY_HISTORY_DEAL_LIST: u16 = 21234;
97pub const CMD_CRYPTO_QUERY_BATCH_ORDER_FEE: u16 = 21235;
100pub const CMD_CRYPTO_MAX_BUY_SELL_QTY: u16 = 20622;
103pub const CMD_CRYPTO_QUERY_CASH_LOG: u16 = 20632;
106pub const CMD_CRYPTO_PLACE_ORDER: u16 = 20626;
109pub const CMD_CRYPTO_CANCEL_ORDER: u16 = 20628;
112pub const CMD_CRYPTO_NOTIFY_ASSET: u16 = 20635;
115pub const CMD_CRYPTO_NOTIFY_ORDER: u16 = 20648;
118
119#[derive(Debug, Clone, Copy, PartialEq, Eq)]
120pub enum TradeBackendChannel {
121 Broker,
122 Platform,
123}
124
125#[derive(Debug, Clone, Copy, PartialEq, Eq)]
126pub enum TradeQueryOperation {
127 Funds,
128 Positions,
129 Orders,
130 Fills,
131 FillInfo,
132 HistoryOrders,
133 HistoryFills,
134}
135
136#[derive(Debug, Clone, Copy, PartialEq, Eq)]
137pub enum TradeQueryBodyProto {
138 RealAccountInfo,
139 SimCashInfo,
140 SimPositionInfo,
141 RealOrderList,
142 SimOrderList,
143 RealOrderFillList,
144 RealOrderFillInfo,
145 RealHistoryOrderList,
146 SimHistoryOrderList,
147 RealHistoryOrderFillList,
148}
149
150#[derive(Debug, Clone, Copy, PartialEq, Eq)]
151pub struct TradeQueryCommandSpec {
152 pub operation: TradeQueryOperation,
153 pub real_cmd: u16,
154 pub sim_cmd: u16,
155 pub real_body: TradeQueryBodyProto,
156 pub sim_body: TradeQueryBodyProto,
157 pub real_channel: TradeBackendChannel,
158 pub sim_channel: TradeBackendChannel,
159 pub cpp_ref: &'static str,
160}
161
162pub const TRADE_QUERY_FUNDS: TradeQueryCommandSpec = TradeQueryCommandSpec {
166 operation: TradeQueryOperation::Funds,
167 real_cmd: CMD_ACCOUNT_INFO,
168 sim_cmd: CMD_SIM_QUERY_FUND,
169 real_body: TradeQueryBodyProto::RealAccountInfo,
170 sim_body: TradeQueryBodyProto::SimCashInfo,
171 real_channel: TradeBackendChannel::Broker,
172 sim_channel: TradeBackendChannel::Platform,
173 cpp_ref: "NNProto_Trd_Acc.cpp:882-922 QueryFundNoLimit",
174};
175
176pub const TRADE_QUERY_POSITIONS: TradeQueryCommandSpec = TradeQueryCommandSpec {
177 operation: TradeQueryOperation::Positions,
178 real_cmd: CMD_ACCOUNT_INFO,
179 sim_cmd: CMD_SIM_QUERY_POSITION,
180 real_body: TradeQueryBodyProto::RealAccountInfo,
181 sim_body: TradeQueryBodyProto::SimPositionInfo,
182 real_channel: TradeBackendChannel::Broker,
183 sim_channel: TradeBackendChannel::Platform,
184 cpp_ref: "NNProto_Trd_Acc.cpp:780-811 QueryPositionListNoLimit",
185};
186
187pub const TRADE_QUERY_ORDERS: TradeQueryCommandSpec = TradeQueryCommandSpec {
188 operation: TradeQueryOperation::Orders,
189 real_cmd: CMD_QUERY_ORDER_LIST,
190 sim_cmd: CMD_SIM_QUERY_ORDER_LIST,
191 real_body: TradeQueryBodyProto::RealOrderList,
192 sim_body: TradeQueryBodyProto::SimOrderList,
193 real_channel: TradeBackendChannel::Broker,
194 sim_channel: TradeBackendChannel::Platform,
195 cpp_ref: "NNProto_Trd_Order.cpp:202-218 QueryOrderList_Inner + NNProto_Trd_Base.cpp:68-70",
196};
197
198pub const TRADE_QUERY_FILLS: TradeQueryCommandSpec = TradeQueryCommandSpec {
199 operation: TradeQueryOperation::Fills,
200 real_cmd: CMD_QUERY_ORDER_FILL_LIST,
201 sim_cmd: CMD_SIM_QUERY_ORDER_FILL_LIST,
202 real_body: TradeQueryBodyProto::RealOrderFillList,
203 sim_body: TradeQueryBodyProto::RealOrderFillList,
204 real_channel: TradeBackendChannel::Broker,
205 sim_channel: TradeBackendChannel::Platform,
206 cpp_ref: "NNProto_Trd_Deal.cpp:135-159 QueryDealList_Inner + NNProto_Trd_Base.cpp:68-70",
207};
208
209pub const TRADE_QUERY_FILL_INFO: TradeQueryCommandSpec = TradeQueryCommandSpec {
210 operation: TradeQueryOperation::FillInfo,
211 real_cmd: CMD_QUERY_ORDER_FILL_INFO,
212 sim_cmd: CMD_SIM_QUERY_ORDER_FILL_INFO,
213 real_body: TradeQueryBodyProto::RealOrderFillInfo,
214 sim_body: TradeQueryBodyProto::RealOrderFillInfo,
215 real_channel: TradeBackendChannel::Broker,
216 sim_channel: TradeBackendChannel::Platform,
217 cpp_ref: "NNProto_Trd_OnPush.cpp:151-161 + NNProto_Trd_Deal.cpp:216-248 + NNProto_Trd_Base.cpp:68-70",
218};
219
220pub const TRADE_QUERY_HISTORY_ORDERS: TradeQueryCommandSpec = TradeQueryCommandSpec {
221 operation: TradeQueryOperation::HistoryOrders,
222 real_cmd: CMD_QUERY_HISTORY_ORDER_LIST,
223 sim_cmd: CMD_SIM_QUERY_HISTORY_ORDER_LIST,
224 real_body: TradeQueryBodyProto::RealHistoryOrderList,
225 sim_body: TradeQueryBodyProto::SimHistoryOrderList,
226 real_channel: TradeBackendChannel::Broker,
227 sim_channel: TradeBackendChannel::Platform,
228 cpp_ref: "NNProto_Trd_Order.cpp:248-263 QueryHistoryOrderList + NNProto_Trd_Base.cpp:68-70",
229};
230
231pub const TRADE_QUERY_HISTORY_FILLS: TradeQueryCommandSpec = TradeQueryCommandSpec {
232 operation: TradeQueryOperation::HistoryFills,
233 real_cmd: CMD_QUERY_HISTORY_ORDER_FILL_LIST,
234 sim_cmd: CMD_SIM_QUERY_HISTORY_ORDER_FILL_LIST,
235 real_body: TradeQueryBodyProto::RealHistoryOrderFillList,
236 sim_body: TradeQueryBodyProto::RealHistoryOrderFillList,
237 real_channel: TradeBackendChannel::Broker,
238 sim_channel: TradeBackendChannel::Platform,
239 cpp_ref: "NNProto_Trd_Deal.cpp:188-208 QueryHistoryDealList + NNProto_Trd_Base.cpp:68-70",
240};
241
242pub const TRADE_QUERY_COMMANDS: &[TradeQueryCommandSpec] = &[
243 TRADE_QUERY_FUNDS,
244 TRADE_QUERY_POSITIONS,
245 TRADE_QUERY_ORDERS,
246 TRADE_QUERY_FILLS,
247 TRADE_QUERY_FILL_INFO,
248 TRADE_QUERY_HISTORY_ORDERS,
249 TRADE_QUERY_HISTORY_FILLS,
250];
251
252pub fn trade_query_command(operation: TradeQueryOperation) -> &'static TradeQueryCommandSpec {
253 match operation {
254 TradeQueryOperation::Funds => &TRADE_QUERY_FUNDS,
255 TradeQueryOperation::Positions => &TRADE_QUERY_POSITIONS,
256 TradeQueryOperation::Orders => &TRADE_QUERY_ORDERS,
257 TradeQueryOperation::Fills => &TRADE_QUERY_FILLS,
258 TradeQueryOperation::FillInfo => &TRADE_QUERY_FILL_INFO,
259 TradeQueryOperation::HistoryOrders => &TRADE_QUERY_HISTORY_ORDERS,
260 TradeQueryOperation::HistoryFills => &TRADE_QUERY_HISTORY_FILLS,
261 }
262}
263
264#[derive(Debug, Clone, Copy, PartialEq, Eq)]
265pub enum TradeWriteOperation {
266 PlaceOrder,
267 ModifyOrder,
268 CancelOrder,
269 ReconfirmOrder,
270 MaxTrdQtys,
271}
272
273#[derive(Debug, Clone, Copy, PartialEq, Eq)]
274pub enum TradeWriteBodyProto {
275 OrderNew,
276 SimOrderNew,
277 OrderReplace,
278 SimOrderReplace,
279 OrderCancel,
280 SimOrderCancel,
281 OrderConfirm,
282 SimOrderConfirm,
283 MaxBuySell,
284 SimMaxBuySell,
285}
286
287#[derive(Debug, Clone, Copy, PartialEq, Eq)]
288pub struct TradeWriteCommandSpec {
289 pub operation: TradeWriteOperation,
290 pub real_cmd: u16,
291 pub sim_cmd: Option<u16>,
292 pub real_body: TradeWriteBodyProto,
293 pub sim_body: Option<TradeWriteBodyProto>,
294 pub real_channel: TradeBackendChannel,
295 pub sim_channel: Option<TradeBackendChannel>,
296 pub cpp_ref: &'static str,
297}
298
299pub const TRADE_WRITE_PLACE_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
303 operation: TradeWriteOperation::PlaceOrder,
304 real_cmd: CMD_PLACE_ORDER,
305 sim_cmd: Some(CMD_SIM_PLACE_ORDER),
306 real_body: TradeWriteBodyProto::OrderNew,
307 sim_body: Some(TradeWriteBodyProto::SimOrderNew),
308 real_channel: TradeBackendChannel::Broker,
309 sim_channel: Some(TradeBackendChannel::Platform),
310 cpp_ref: "NNProto_Trd_OrderOp.cpp:41-71 + NNProto_Trd_Base.cpp:68-70",
311};
312
313pub const TRADE_WRITE_MODIFY_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
314 operation: TradeWriteOperation::ModifyOrder,
315 real_cmd: CMD_MODIFY_ORDER,
316 sim_cmd: Some(CMD_SIM_MODIFY_ORDER),
317 real_body: TradeWriteBodyProto::OrderReplace,
318 sim_body: Some(TradeWriteBodyProto::SimOrderReplace),
319 real_channel: TradeBackendChannel::Broker,
320 sim_channel: Some(TradeBackendChannel::Platform),
321 cpp_ref: "NNProto_Trd_OrderOp.cpp:113-137 + NNProto_Trd_Base.cpp:68-70",
322};
323
324pub const TRADE_WRITE_CANCEL_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
325 operation: TradeWriteOperation::CancelOrder,
326 real_cmd: CMD_CANCEL_ORDER,
327 sim_cmd: Some(CMD_SIM_CANCEL_ORDER),
328 real_body: TradeWriteBodyProto::OrderCancel,
329 sim_body: Some(TradeWriteBodyProto::SimOrderCancel),
330 real_channel: TradeBackendChannel::Broker,
331 sim_channel: Some(TradeBackendChannel::Platform),
332 cpp_ref: "NNProto_Trd_OrderOp.cpp:141-167 + NNProto_Trd_Base.cpp:68-70",
333};
334
335pub const TRADE_WRITE_RECONFIRM_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
336 operation: TradeWriteOperation::ReconfirmOrder,
337 real_cmd: CMD_ORDER_CONFIRM,
338 sim_cmd: Some(CMD_SIM_ORDER_CONFIRM),
339 real_body: TradeWriteBodyProto::OrderConfirm,
340 sim_body: Some(TradeWriteBodyProto::SimOrderConfirm),
341 real_channel: TradeBackendChannel::Broker,
342 sim_channel: Some(TradeBackendChannel::Platform),
343 cpp_ref: "TradeCmdDefine.h CS_CMDID_TRADE_ORDER_CONFIRM_ORDER = 4728 + NNProto_Trd_Base.cpp:68-70",
344};
345
346pub const TRADE_WRITE_MAX_TRD_QTYS: TradeWriteCommandSpec = TradeWriteCommandSpec {
347 operation: TradeWriteOperation::MaxTrdQtys,
348 real_cmd: CMD_MAX_BUY_SELL,
349 sim_cmd: Some(CMD_SIM_MAX_BUY_SELL),
350 real_body: TradeWriteBodyProto::MaxBuySell,
351 sim_body: Some(TradeWriteBodyProto::SimMaxBuySell),
352 real_channel: TradeBackendChannel::Broker,
353 sim_channel: Some(TradeBackendChannel::Platform),
354 cpp_ref: "NNProto_Trd_MaxQty.cpp:95-105 + NNProto_Trd_Base.cpp:68-70",
355};
356
357pub const TRADE_WRITE_COMMANDS: &[TradeWriteCommandSpec] = &[
358 TRADE_WRITE_PLACE_ORDER,
359 TRADE_WRITE_MODIFY_ORDER,
360 TRADE_WRITE_CANCEL_ORDER,
361 TRADE_WRITE_RECONFIRM_ORDER,
362 TRADE_WRITE_MAX_TRD_QTYS,
363];
364
365pub fn trade_write_command(operation: TradeWriteOperation) -> &'static TradeWriteCommandSpec {
366 match operation {
367 TradeWriteOperation::PlaceOrder => &TRADE_WRITE_PLACE_ORDER,
368 TradeWriteOperation::ModifyOrder => &TRADE_WRITE_MODIFY_ORDER,
369 TradeWriteOperation::CancelOrder => &TRADE_WRITE_CANCEL_ORDER,
370 TradeWriteOperation::ReconfirmOrder => &TRADE_WRITE_RECONFIRM_ORDER,
371 TradeWriteOperation::MaxTrdQtys => &TRADE_WRITE_MAX_TRD_QTYS,
372 }
373}
374
375#[derive(Debug, Clone, Copy, PartialEq, Eq)]
376pub enum CryptoTradeOperation {
377 FetchTradeConfig,
378 AccountInfo,
379 Orders,
380 HistoryOrders,
381 OrderInfo,
382 OrderFillDetail,
383 Deals,
384 HistoryDeals,
385 BatchOrderFee,
386 MaxBuySellQty,
387 CashLog,
388 PlaceOrder,
389 CancelOrder,
390 NotifyAsset,
391 NotifyOrder,
392}
393
394#[derive(Debug, Clone, Copy, PartialEq, Eq)]
395pub enum CryptoTradeBodyProto {
396 InboundOeFetchTradeConfig,
397 AssetPlAccountInfo,
398 InboundReadOrderList,
399 InboundReadHistoryOrderList,
400 InboundReadOrderDetail,
401 InboundReadOrderFillDetail,
402 InboundOeFillList,
403 InboundOeHistoryFillList,
404 InboundOeBatchOrderFee,
405 CryptoRiskMaxBuySell,
406 CashChangeDetailCashLog,
407 InboundOeOrderNew,
408 InboundOeOrderCancel,
409 CryptoNotifyOrder,
410 CryptoNotifyAsset,
411}
412
413#[derive(Debug, Clone, Copy, PartialEq, Eq)]
414pub struct CryptoTradeCommandSpec {
415 pub operation: CryptoTradeOperation,
416 pub cmd: u16,
417 pub body: CryptoTradeBodyProto,
418 pub channel: TradeBackendChannel,
419 pub cpp_ref: &'static str,
420}
421
422pub const CRYPTO_TRADE_FETCH_TRADE_CONFIG: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
428 operation: CryptoTradeOperation::FetchTradeConfig,
429 cmd: CMD_CRYPTO_FETCH_TRADE_CONFIG,
430 body: CryptoTradeBodyProto::InboundOeFetchTradeConfig,
431 channel: TradeBackendChannel::Broker,
432 cpp_ref: "NNProto_Trd_CryptoTradeConfig.cpp:14-23",
433};
434
435pub const CRYPTO_TRADE_ACCOUNT_INFO: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
436 operation: CryptoTradeOperation::AccountInfo,
437 cmd: CMD_CRYPTO_ACCOUNT_INFO,
438 body: CryptoTradeBodyProto::AssetPlAccountInfo,
439 channel: TradeBackendChannel::Broker,
440 cpp_ref: "NNProto_Trd_AccCrypto.cpp:197-215",
441};
442
443pub const CRYPTO_TRADE_ORDERS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
444 operation: CryptoTradeOperation::Orders,
445 cmd: CMD_CRYPTO_QUERY_ORDER_LIST,
446 body: CryptoTradeBodyProto::InboundReadOrderList,
447 channel: TradeBackendChannel::Broker,
448 cpp_ref: "NNProto_Trd_OrderCrypto.cpp:346-368",
449};
450
451pub const CRYPTO_TRADE_HISTORY_ORDERS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
452 operation: CryptoTradeOperation::HistoryOrders,
453 cmd: CMD_CRYPTO_QUERY_HISTORY_ORDER_LIST,
454 body: CryptoTradeBodyProto::InboundReadHistoryOrderList,
455 channel: TradeBackendChannel::Broker,
456 cpp_ref: "NNProto_Trd_OrderCrypto.cpp:373-398",
457};
458
459pub const CRYPTO_TRADE_ORDER_INFO: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
460 operation: CryptoTradeOperation::OrderInfo,
461 cmd: CMD_CRYPTO_QUERY_ORDER_INFO,
462 body: CryptoTradeBodyProto::InboundReadOrderDetail,
463 channel: TradeBackendChannel::Broker,
464 cpp_ref: "NNProto_Trd_OrderCrypto.cpp:153-177",
465};
466
467pub const CRYPTO_TRADE_ORDER_FILL_DETAIL: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
468 operation: CryptoTradeOperation::OrderFillDetail,
469 cmd: CMD_CRYPTO_QUERY_ORDER_FILL_DETAIL,
470 body: CryptoTradeBodyProto::InboundReadOrderFillDetail,
471 channel: TradeBackendChannel::Broker,
472 cpp_ref: "NNProto_Trd_DealCrypto.cpp:500-525",
473};
474
475pub const CRYPTO_TRADE_DEALS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
476 operation: CryptoTradeOperation::Deals,
477 cmd: CMD_CRYPTO_QUERY_DEAL_LIST,
478 body: CryptoTradeBodyProto::InboundOeFillList,
479 channel: TradeBackendChannel::Broker,
480 cpp_ref: "NNProto_Trd_DealCrypto.cpp:452-464",
481};
482
483pub const CRYPTO_TRADE_HISTORY_DEALS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
484 operation: CryptoTradeOperation::HistoryDeals,
485 cmd: CMD_CRYPTO_QUERY_HISTORY_DEAL_LIST,
486 body: CryptoTradeBodyProto::InboundOeHistoryFillList,
487 channel: TradeBackendChannel::Broker,
488 cpp_ref: "NNProto_Trd_DealCrypto.cpp:472-485",
489};
490
491pub const CRYPTO_TRADE_BATCH_ORDER_FEE: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
492 operation: CryptoTradeOperation::BatchOrderFee,
493 cmd: CMD_CRYPTO_QUERY_BATCH_ORDER_FEE,
494 body: CryptoTradeBodyProto::InboundOeBatchOrderFee,
495 channel: TradeBackendChannel::Broker,
496 cpp_ref: "NNProto_Trd_OrderFeeCrypto.cpp:133-149",
497};
498
499pub const CRYPTO_TRADE_MAX_BUY_SELL_QTY: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
500 operation: CryptoTradeOperation::MaxBuySellQty,
501 cmd: CMD_CRYPTO_MAX_BUY_SELL_QTY,
502 body: CryptoTradeBodyProto::CryptoRiskMaxBuySell,
503 channel: TradeBackendChannel::Broker,
504 cpp_ref: "NNProto_Trd_MaxQtyCrypto.cpp:14-38",
505};
506
507pub const CRYPTO_TRADE_CASH_LOG: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
508 operation: CryptoTradeOperation::CashLog,
509 cmd: CMD_CRYPTO_QUERY_CASH_LOG,
510 body: CryptoTradeBodyProto::CashChangeDetailCashLog,
511 channel: TradeBackendChannel::Broker,
512 cpp_ref: "NNProto_Trd_FlowSummaryCrypto.cpp:191-212",
513};
514
515pub const CRYPTO_TRADE_PLACE_ORDER: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
516 operation: CryptoTradeOperation::PlaceOrder,
517 cmd: CMD_CRYPTO_PLACE_ORDER,
518 body: CryptoTradeBodyProto::InboundOeOrderNew,
519 channel: TradeBackendChannel::Broker,
520 cpp_ref: "NNProto_Trd_OrderOpCrypto.cpp:21-53",
521};
522
523pub const CRYPTO_TRADE_CANCEL_ORDER: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
524 operation: CryptoTradeOperation::CancelOrder,
525 cmd: CMD_CRYPTO_CANCEL_ORDER,
526 body: CryptoTradeBodyProto::InboundOeOrderCancel,
527 channel: TradeBackendChannel::Broker,
528 cpp_ref: "NNProto_Trd_OrderOpCrypto.cpp:65-112",
529};
530
531pub const CRYPTO_TRADE_NOTIFY_ASSET: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
532 operation: CryptoTradeOperation::NotifyAsset,
533 cmd: CMD_CRYPTO_NOTIFY_ASSET,
534 body: CryptoTradeBodyProto::CryptoNotifyAsset,
535 channel: TradeBackendChannel::Broker,
536 cpp_ref: "NNProto_Trd_OnPush.cpp:284-307",
537};
538
539pub const CRYPTO_TRADE_NOTIFY_ORDER: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
540 operation: CryptoTradeOperation::NotifyOrder,
541 cmd: CMD_CRYPTO_NOTIFY_ORDER,
542 body: CryptoTradeBodyProto::CryptoNotifyOrder,
543 channel: TradeBackendChannel::Broker,
544 cpp_ref: "NNProto_Trd_OnPush.cpp:246-272",
545};
546
547pub const CRYPTO_TRADE_COMMANDS: &[CryptoTradeCommandSpec] = &[
548 CRYPTO_TRADE_FETCH_TRADE_CONFIG,
549 CRYPTO_TRADE_ACCOUNT_INFO,
550 CRYPTO_TRADE_ORDERS,
551 CRYPTO_TRADE_HISTORY_ORDERS,
552 CRYPTO_TRADE_ORDER_INFO,
553 CRYPTO_TRADE_ORDER_FILL_DETAIL,
554 CRYPTO_TRADE_DEALS,
555 CRYPTO_TRADE_HISTORY_DEALS,
556 CRYPTO_TRADE_BATCH_ORDER_FEE,
557 CRYPTO_TRADE_MAX_BUY_SELL_QTY,
558 CRYPTO_TRADE_CASH_LOG,
559 CRYPTO_TRADE_PLACE_ORDER,
560 CRYPTO_TRADE_CANCEL_ORDER,
561 CRYPTO_TRADE_NOTIFY_ASSET,
562 CRYPTO_TRADE_NOTIFY_ORDER,
563];
564
565pub fn crypto_trade_command(operation: CryptoTradeOperation) -> &'static CryptoTradeCommandSpec {
566 match operation {
567 CryptoTradeOperation::FetchTradeConfig => &CRYPTO_TRADE_FETCH_TRADE_CONFIG,
568 CryptoTradeOperation::AccountInfo => &CRYPTO_TRADE_ACCOUNT_INFO,
569 CryptoTradeOperation::Orders => &CRYPTO_TRADE_ORDERS,
570 CryptoTradeOperation::HistoryOrders => &CRYPTO_TRADE_HISTORY_ORDERS,
571 CryptoTradeOperation::OrderInfo => &CRYPTO_TRADE_ORDER_INFO,
572 CryptoTradeOperation::OrderFillDetail => &CRYPTO_TRADE_ORDER_FILL_DETAIL,
573 CryptoTradeOperation::Deals => &CRYPTO_TRADE_DEALS,
574 CryptoTradeOperation::HistoryDeals => &CRYPTO_TRADE_HISTORY_DEALS,
575 CryptoTradeOperation::BatchOrderFee => &CRYPTO_TRADE_BATCH_ORDER_FEE,
576 CryptoTradeOperation::MaxBuySellQty => &CRYPTO_TRADE_MAX_BUY_SELL_QTY,
577 CryptoTradeOperation::CashLog => &CRYPTO_TRADE_CASH_LOG,
578 CryptoTradeOperation::PlaceOrder => &CRYPTO_TRADE_PLACE_ORDER,
579 CryptoTradeOperation::CancelOrder => &CRYPTO_TRADE_CANCEL_ORDER,
580 CryptoTradeOperation::NotifyAsset => &CRYPTO_TRADE_NOTIFY_ASSET,
581 CryptoTradeOperation::NotifyOrder => &CRYPTO_TRADE_NOTIFY_ORDER,
582 }
583}
584
585#[cfg(test)]
586mod tests;