lightcone_sdk/shared/
mod.rs1pub mod price;
4pub mod types;
5
6pub use price::{format_decimal, parse_decimal};
8pub use types::*;
9
10pub fn derive_orderbook_id(base_token: &str, quote_token: &str) -> String {
26 let base_prefix = &base_token[..8.min(base_token.len())];
27 let quote_prefix = "e_token[..8.min(quote_token.len())];
28 format!("{}_{}", base_prefix, quote_prefix)
29}
30
31#[cfg(test)]
32mod tests {
33 use super::*;
34
35 #[test]
36 fn test_derive_orderbook_id() {
37 let orderbook_id = derive_orderbook_id(
38 "7BgBvyjrZX1YKz4oh9mjb8ZScatkkwb8DzFx7LoiVkM3",
39 "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
40 );
41 assert_eq!(orderbook_id, "7BgBvyjr_EPjFWdd5");
42 }
43
44 #[test]
45 fn test_derive_orderbook_id_short_tokens() {
46 let orderbook_id = derive_orderbook_id("ABCD", "XYZ");
48 assert_eq!(orderbook_id, "ABCD_XYZ");
49 }
50
51 #[test]
52 fn test_derive_orderbook_id_exact_length() {
53 let orderbook_id = derive_orderbook_id("12345678", "ABCDEFGH");
54 assert_eq!(orderbook_id, "12345678_ABCDEFGH");
55 }
56}