1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//! # V5 Core - минимальная архитектура коннекторов
//!
//! ## Архитектура (Traits + Utils)
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────────────────────┐
//! │ CORE MODULE │
//! ├─────────────────────────────────────────────────────────────────────────────┤
//! │ │
//! │ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────────┐ │
//! │ │ TRAITS │ │ UTILS │ │ TRANSPORT │ │
//! │ │ │ │ │ │ │ │
//! │ │ MarketData │ │ crypto: │ │ HttpClient │ │
//! │ │ Trading │ │ hmac_sha256 │ │ GraphQlClient │ │
//! │ │ Account │ │ hmac_sha512 │ │ WebSocket │ │
//! │ │ Positions │ │ │ │ GrpcClient (grpc) │ │
//! │ │ ExchangeAuth │ │ encoding: │ │ │ │
//! │ │ │ │ encode_base64 │ │ │ │
//! │ │ ────────────────│ │ encode_hex │ │ │ │
//! │ │ CoreConnector │ │ │ │ │ │
//! │ │ (combined) │ │ time: │ │ │ │
//! │ │ │ │ timestamp_* │ │ │ │
//! │ └──────────────────┘ └──────────────────┘ └─────────────────────┘ │
//! │ │
//! └─────────────────────────────────────────────────────────────────────────────┘
//!
//! │
//! ▼
//!
//! ┌─────────────────────────────────────────────────────────────────────────────┐
//! │ EXCHANGE CONNECTORS │
//! ├─────────────────────────────────────────────────────────────────────────────┤
//! │ │
//! │ ┌──────────────────────────────────────────────────────────────────────┐ │
//! │ │ KuCoinConnector │ │
//! │ │ │ │
//! │ │ impl MarketData for KuCoinConnector { ... } │ │
//! │ │ impl Trading for KuCoinConnector { ... } │ │
//! │ │ impl ExchangeAuth for KuCoinAuth { ... } │ │
//! │ │ │ │
//! │ │ + extended methods as struct methods │ │
//! │ │ + KuCoin-specific logic │ │
//! │ │ │ │
//! │ └──────────────────────────────────────────────────────────────────────┘ │
//! │ │
//! └─────────────────────────────────────────────────────────────────────────────┘
//! ```
//!
//! ## Core трейты
//!
//! | Трейт | Описание |
//! |-------|----------|
//! | `MarketData` | price, orderbook, klines, ticker, ping |
//! | `Trading` | market_order, limit_order, cancel, get_order, open_orders |
//! | `Account` | balance, account_info |
//! | `Positions` | positions, funding_rate, set_leverage |
//! | `ExchangeAuth` | sign_request (каждая биржа реализует свою логику) |
//!
//! ## Утилиты
//!
//! - `utils::crypto` - hmac_sha256, hmac_sha512, sha256, sha512
//! - `utils::encoding` - encode_base64, encode_hex, encode_hex_lower
//! - `utils::time` - timestamp_millis, timestamp_seconds, timestamp_iso8601
//! - `utils::rate_limiter` - SimpleRateLimiter, WeightRateLimiter
// Re-exports types
pub use ;
// Re-exports traits
pub use ;
// Re-exports utils
pub use ;
// Re-exports transport
pub use HttpClient;
pub use GraphQlClient;
// Re-exports chain types
pub use ;