Skip to main content

futu_backend/
lib.rs

1pub mod auth;
2pub mod code_change;
3pub mod conn;
4pub mod conn_ip;
5pub mod crypto_exchange;
6pub mod crypto_trade;
7pub mod ftlogin_wire;
8pub mod heartbeat;
9pub mod login;
10/// v1.4.110 codex QOT C++ alignment Slice 2: CMD9419 main broker / crypto broker discovery.
11/// 给 QOT `securityFirm=Unknown` 提供 default broker 数据源 (`GetCryptoSupportedDefaultMainBroker`).
12pub mod main_broker_svr;
13/// v1.4.110 codex QOT C++ alignment Phase 3 Slice 6e: CMD6825 broker-aware market state.
14/// 替代旧 CMD6823 路径, 给 GetMarketState 提供 `(market_id, broker_id_or_0)` 双维 lookup.
15pub mod market_info_svr;
16// v1.4.106 codex F5: CMD 6747 ReqMainLinkContract — 期货主连合约真实合约解析
17pub mod main_link_contract;
18pub mod msg_header;
19pub mod nn_codec;
20pub mod proto_handler;
21pub mod quote_sub;
22pub mod stock_list;
23pub mod suspend_data;
24pub mod trade_cmd;
25pub mod trade_query;
26pub mod user_profile;
27pub mod valid_brokers;
28
29/// 内部 proto 生成的类型 (proto-internal/)
30#[allow(clippy::tabs_in_doc_comments, clippy::empty_docs)]
31pub mod proto_internal {
32    pub mod odr_sys_cmn {
33        include!(concat!(env!("OUT_DIR"), "/odr_sys_cmn.rs"));
34    }
35    pub mod sim_odr_sys_cmn {
36        include!(concat!(env!("OUT_DIR"), "/sim_odr_sys_cmn.rs"));
37    }
38    // v1.4.53 BUG-6 加:sim 账户 CMD 14704 (CashInfo) + CMD 14705 (PstnInfo)
39    pub mod sim_user_asset_interface {
40        include!(concat!(env!("OUT_DIR"), "/sim_user_asset_interface.rs"));
41    }
42    // v1.4.106: sim 账户订单列表 CMD 14708(由 trade_cmd registry 显式登记)
43    pub mod sim_order_sys_interface {
44        include!(concat!(env!("OUT_DIR"), "/sim_order_sys_interface.rs"));
45    }
46    pub mod algo_info {
47        include!(concat!(env!("OUT_DIR"), "/algo_info.rs"));
48    }
49    pub mod ft_string_define {
50        include!(concat!(env!("OUT_DIR"), "/ft_string_define.rs"));
51    }
52    pub mod ft_usr_trd_acc {
53        include!(concat!(env!("OUT_DIR"), "/ft_usr_trd_acc.rs"));
54    }
55    pub mod ft_cmd2008 {
56        include!(concat!(env!("OUT_DIR"), "/ft_cmd2008.rs"));
57    }
58    pub mod ft_cmd2282 {
59        include!(concat!(env!("OUT_DIR"), "/ft_cmd2282.rs"));
60    }
61    pub mod ft_cmd2298 {
62        include!(concat!(env!("OUT_DIR"), "/ft_cmd2298.rs"));
63    }
64    pub mod ft_conn_heart_beat {
65        include!(concat!(env!("OUT_DIR"), "/ft_conn_heart_beat.rs"));
66    }
67    pub mod user_account {
68        include!(concat!(env!("OUT_DIR"), "/user_account.rs"));
69    }
70    pub mod user_account_info_manager_service {
71        include!(concat!(
72            env!("OUT_DIR"),
73            "/user_account_info_manager_service.rs"
74        ));
75    }
76    // v1.4.110 final E.5 P3#8: FTCmd6741-6750.proto 的 CheckSum 类型被 stock_list_sync_svr
77    // 引用 (id_check_sum_v2 / seq_check_sum_v2 字段), 必须先 pub mod 出 ftcmd6741, 否则
78    // stock_list_sync_svr 生成代码引用 `super::ftcmd6741::CheckSum` 找不到模块.
79    pub mod ftcmd6741 {
80        include!(concat!(env!("OUT_DIR"), "/ftcmd6741.rs"));
81    }
82    pub mod stock_list_sync_svr {
83        include!(concat!(env!("OUT_DIR"), "/stock_list_sync_svr.rs"));
84    }
85    pub mod ft_cmd6822 {
86        include!(concat!(env!("OUT_DIR"), "/ft_cmd6822.rs"));
87    }
88    pub mod ft_cmd6823 {
89        include!(concat!(env!("OUT_DIR"), "/ft_cmd6823.rs"));
90    }
91    pub mod ft_cmd_stock_quote_sub {
92        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_quote_sub.rs"));
93    }
94    pub mod ft_cmd_stock_quote_sub_data {
95        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_quote_sub_data.rs"));
96    }
97    pub mod ft_common_qta {
98        include!(concat!(env!("OUT_DIR"), "/ft_common_qta.rs"));
99    }
100    pub mod order_sys_interface {
101        include!(concat!(env!("OUT_DIR"), "/order_sys_interface.rs"));
102    }
103    pub mod ft_cmd_tick {
104        include!(concat!(env!("OUT_DIR"), "/ft_cmd_tick.rs"));
105    }
106    pub mod ft_cmd_kline {
107        include!(concat!(env!("OUT_DIR"), "/ft_cmd_kline.rs"));
108    }
109    pub mod ft_cmd_stock_quote_accumulate_data {
110        include!(concat!(
111            env!("OUT_DIR"),
112            "/ft_cmd_stock_quote_accumulate_data.rs"
113        ));
114    }
115    pub mod ft_cmd_stock_quote_coverage_data {
116        include!(concat!(
117            env!("OUT_DIR"),
118            "/ft_cmd_stock_quote_coverage_data.rs"
119        ));
120    }
121    pub mod market_trading_day {
122        include!(concat!(env!("OUT_DIR"), "/market_trading_day.rs"));
123    }
124    pub mod ft_cmd6811 {
125        include!(concat!(env!("OUT_DIR"), "/ft_cmd6811.rs"));
126    }
127    pub mod ft_cmd_plate {
128        include!(concat!(env!("OUT_DIR"), "/ft_cmd_plate.rs"));
129    }
130    pub mod ftcmd_option_chain {
131        include!(concat!(env!("OUT_DIR"), "/ftcmd_option_chain.rs"));
132    }
133    /// v1.4.38 Phase 3: CMD 6736 期权 Greek server-side filter (GetComboOptionList)
134    pub mod option_chain_frpc_svr {
135        include!(concat!(env!("OUT_DIR"), "/option_chain_frpc_svr.rs"));
136    }
137    /// v1.4.38 Phase 2 A2b: CMD 20106 on-demand stock/option info lookup by symbol
138    pub mod stock_information_svr {
139        include!(concat!(env!("OUT_DIR"), "/stock_information_svr.rs"));
140    }
141    pub mod cash_flow_cs {
142        include!(concat!(env!("OUT_DIR"), "/cash_flow_cs.rs"));
143    }
144    // v1.4.94 Tier M (mobile-driven extension): 资金明细 / cash log
145    // 来源: ftcnnproto/.../realtime_asset_log.proto (cmd 3000/3001/3002)
146    pub mod realtime_asset_log {
147        include!(concat!(env!("OUT_DIR"), "/realtime_asset_log.rs"));
148    }
149    // v1.4.95 U2-D Tier M (mobile-driven extension): margin account info per market
150    // 来源: ftcnnproto/.../risk_user_account_info.proto (cmd 3101/3102/3107)
151    pub mod risk_user_account_info {
152        include!(concat!(env!("OUT_DIR"), "/risk_user_account_info.rs"));
153    }
154    // v1.4.95 U2-A Tier M (mobile-driven extension): account compliance flags
155    // 来源: ftcnnproto/.../account_flag.proto (cmd 5281)
156    pub mod account_flag {
157        include!(concat!(env!("OUT_DIR"), "/account_flag.rs"));
158    }
159    // v1.4.95 U2-B Tier M (mobile-driven extension): bond holdings + trade prep
160    // 来源: ftcnnproto/.../bond_client_view.proto (cmd 9373/9374/9375/10043/10057)
161    pub mod bond_client_view {
162        include!(concat!(env!("OUT_DIR"), "/bond_client_view.rs"));
163    }
164    // v1.4.107 funds source audit: OpenD QueryFundNoLimit sidecar asset
165    // request for fund/bond totals (CMD 20086).
166    pub mod mobile_fund_asset {
167        include!(concat!(env!("OUT_DIR"), "/mobile_fund_asset.rs"));
168    }
169    // v1.4.98 T2-8 (mobile-source-audit Phase 2): NN+MM token 状态查询
170    // 来源: moomoo futu_token.proto cmd 1326 (GetTokenListRequest/Response)
171    pub mod futu_token_state {
172        include!(concat!(env!("OUT_DIR"), "/futu_token_state.rs"));
173    }
174    // v1.4.98 T2-2 (mobile-source-audit Phase 2): 无风险利率 (期权定价)
175    // 来源: ftcnnproto risk_free_rate_service.proto cmd 20231 GetRiskFreeRate
176    pub mod risk_free_rate {
177        include!(concat!(env!("OUT_DIR"), "/risk_free_rate.rs"));
178    }
179    // v1.4.98 T2-3 (mobile-source-audit Phase 2): 逐笔统计 (TickerStatistic)
180    // 来源: proto-internal/FTCmdTickerStatistic6365-6366.proto cmd 6365/6366
181    pub mod ft_cmd_ticker_statistic {
182        include!(concat!(env!("OUT_DIR"), "/ft_cmd_ticker_statistic.rs"));
183    }
184    // v1.4.98 T2-3: daemon-side wire envelopes for TickerStatistic (Security
185    // 字符串解析 → stock_id, 然后调 ft_cmd_ticker_statistic).
186    pub mod ticker_statistic_daemon {
187        include!(concat!(env!("OUT_DIR"), "/ticker_statistic_daemon.rs"));
188    }
189    // v1.4.98 T2-1 (mobile-source-audit Phase 2): 摆盘步长 SpreadTable cmd 6503
190    // 来源: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmdSpread6503.proto
191    pub mod spread_table_6503 {
192        include!(concat!(env!("OUT_DIR"), "/spread_table_6503.rs"));
193    }
194    pub mod ft_cmd_ipo_calender6955_6959 {
195        include!(concat!(env!("OUT_DIR"), "/ft_cmd_ipo_calender6955_6959.rs"));
196    }
197    pub mod ft_cmd_us_future_info {
198        include!(concat!(env!("OUT_DIR"), "/ft_cmd_us_future_info.rs"));
199    }
200    pub mod ftcmd6513 {
201        include!(concat!(env!("OUT_DIR"), "/ftcmd6513.rs"));
202    }
203    pub mod ft_cmd_stock_screener {
204        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_screener.rs"));
205    }
206    pub mod ft_cmd_trade_auth {
207        include!(concat!(env!("OUT_DIR"), "/ft_cmd_trade_auth.rs"));
208    }
209    pub mod ftcmd6621_6640 {
210        include!(concat!(env!("OUT_DIR"), "/ftcmd6621_6640.rs"));
211    }
212    pub mod wch_lst {
213        include!(concat!(env!("OUT_DIR"), "/wch_lst.rs"));
214    }
215    pub mod ft_cmd_price_warn {
216        include!(concat!(env!("OUT_DIR"), "/ft_cmd_price_warn.rs"));
217    }
218    pub mod stock_suspend {
219        include!(concat!(env!("OUT_DIR"), "/stock_suspend.rs"));
220    }
221    pub mod ft_cmd_hp_plate {
222        include!(concat!(env!("OUT_DIR"), "/ft_cmd_hp_plate.rs"));
223    }
224    pub mod stock_ratio_info {
225        include!(concat!(env!("OUT_DIR"), "/stock_ratio_info.rs"));
226    }
227    pub mod order_fee_query {
228        include!(concat!(env!("OUT_DIR"), "/order_fee_query.rs"));
229    }
230    // v1.4.109 crypto trade: server-side wire protos introduced by C++
231    // OpenD 10.5.6508. Source: NNProtoFile/Server/PB/Trade/*crypto* /
232    // inbound_* / asset_pl / cash_change_detail_cmn.
233    pub mod trade_cmn {
234        include!(concat!(env!("OUT_DIR"), "/trade_cmn.rs"));
235    }
236    pub mod asset_pl {
237        include!(concat!(env!("OUT_DIR"), "/asset_pl.rs"));
238    }
239    pub mod crypto_account_asset_cmn {
240        include!(concat!(env!("OUT_DIR"), "/crypto_account_asset_cmn.rs"));
241    }
242    pub mod crypto_risk_comm {
243        include!(concat!(env!("OUT_DIR"), "/crypto_risk_comm.rs"));
244    }
245    pub mod crypto_risk {
246        include!(concat!(env!("OUT_DIR"), "/crypto_risk.rs"));
247    }
248    pub mod config_base {
249        include!(concat!(env!("OUT_DIR"), "/config_base.rs"));
250    }
251    pub mod inbound_oe {
252        include!(concat!(env!("OUT_DIR"), "/inbound_oe.rs"));
253    }
254    pub mod inbound_read {
255        include!(concat!(env!("OUT_DIR"), "/inbound_read.rs"));
256    }
257    pub mod cash_change_detail_cmn {
258        include!(concat!(env!("OUT_DIR"), "/cash_change_detail_cmn.rs"));
259    }
260    pub mod va_asset_changed_notification {
261        include!(concat!(
262            env!("OUT_DIR"),
263            "/va_asset_changed_notification.rs"
264        ));
265    }
266    // v1.4.108 GetMaxTrdQtys option IM side request.
267    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Trade/FTCmd5004.proto
268    pub mod ft_cmd5004 {
269        include!(concat!(env!("OUT_DIR"), "/ft_cmd5004.rs"));
270    }
271    pub mod soa_std_data {
272        include!(concat!(env!("OUT_DIR"), "/soa_std_data.rs"));
273    }
274    pub mod asset_query {
275        include!(concat!(env!("OUT_DIR"), "/asset_query.rs"));
276    }
277    pub mod ft_cmd_stock_quote_fetch {
278        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_quote_fetch.rs"));
279    }
280    pub mod ft_conn_ip {
281        include!(concat!(env!("OUT_DIR"), "/ft_conn_ip.rs"));
282    }
283    /// CMD 20176 GetValidBrokerList (v1.4.22) — 对齐 C++ `FTConnBind.proto`
284    pub mod ft_conn_bind {
285        include!(concat!(env!("OUT_DIR"), "/ft_conn_bind.rs"));
286    }
287    pub mod msgcenter {
288        include!(concat!(env!("OUT_DIR"), "/msgcenter.rs"));
289    }
290    pub mod msgdefine {
291        include!(concat!(env!("OUT_DIR"), "/msgdefine.rs"));
292    }
293    pub mod qta_auth {
294        include!(concat!(env!("OUT_DIR"), "/qta_auth.rs"));
295    }
296    /// CMD7506 QueryUserProfile — GetUserInfo.nickName/avatarUrl backend source.
297    ///
298    /// Source: FutuOpenD/Src/NNProtoFile/Server/PB/User/FTCmdSnsProfile.proto.
299    pub mod ft_cmd_sns_profile {
300        include!(concat!(env!("OUT_DIR"), "/ft_cmd_sns_profile.rs"));
301    }
302    // v1.4.44: QtaAuth6024_Rsp 补 43 字段依赖 FTCMD6651_QtaAuthChg.proto 里的
303    // QuoteChangeNotify。generated as `ftcmd6651_qta_auth_chg.rs` in OUT_DIR。
304    pub mod ftcmd6651_qta_auth_chg {
305        include!(concat!(env!("OUT_DIR"), "/ftcmd6651_qta_auth_chg.rs"));
306    }
307    // v1.4.106 codex 1217 F5 [P2] (5月1日): CMD 6006 行情权限变更通知 (旧路径).
308    pub mod ftcmd6006_qta_auth_chg {
309        include!(concat!(env!("OUT_DIR"), "/ftcmd6006_qta_auth_chg.rs"));
310    }
311    // v1.4.106 codex 1140 F7: CMD 18008 (NN_ProtoCmd_Qot_Pull_BrokerInfo)
312    // 拉取券商配置表 (BrokerConfigReq/Rsp + BrokerInfoList).
313    // 来源 quote_config_svr.proto (audit Finding 7).
314    pub mod quote_config_svr_broker {
315        include!(concat!(env!("OUT_DIR"), "/quote_config_svr_broker.rs"));
316    }
317    // v1.4.110 codex QOT C++ alignment Slice 2: CMD9419 主推券商 + 数字货币主推券商.
318    // 来源: NNProtoFile/Server/PB/Trade/main_broker_svr.proto + main_broker_base.proto
319    // 用途: QOT `securityFirm=Unknown` 时 `GetCryptoSupportedDefaultMainBroker`
320    //       数据源 (`main_brokers` / `crypto_brokers` 顺序).
321    pub mod main_broker_svr {
322        include!(concat!(env!("OUT_DIR"), "/main_broker_svr.rs"));
323    }
324    // v1.4.110 codex QOT C++ alignment Phase 4 Slice 7: CMD18012 GetLv2RelatedExchange.
325    // 来源: NNProtoFile/Server/PB/Quote/FTMdfRelatedSvr.proto.
326    // 用途: crypto LV2 摆盘订阅前查"该 stock 在该 broker 下关联的交易所列表",
327    //       每个交易所对应一个 lv2_prob (USLV2OrderSubProb), daemon 合并发起
328    //       CMD6824 sub + 40 档 merge 合到 broker-level orderbook cache.
329    pub mod ft_mdf_related_svr {
330        include!(concat!(env!("OUT_DIR"), "/ft_mdf_related_svr.rs"));
331    }
332}
333
334#[cfg(test)]
335mod user_account_info_manager_service_tests;