1pub mod exceptions;
4#[cfg(feature = "models")]
5pub mod get_nftoken_id;
6#[cfg(feature = "models")]
7pub mod get_xchain_claim_id;
8pub mod mptoken_metadata;
9#[cfg(feature = "models")]
10pub mod parse_nftoken_id;
11pub mod str_conversion;
12#[cfg(test)]
13pub mod testing;
14pub mod time_conversion;
15#[cfg(feature = "models")]
16pub(crate) mod transactions;
17#[cfg(feature = "models")]
18pub mod txn_parser;
19pub mod xrpl_conversion;
20
21pub use self::mptoken_metadata::*;
22pub use self::time_conversion::*;
23pub use self::xrpl_conversion::*;
24
25use crate::constants::*;
26use alloc::vec::Vec;
27use regex::Regex;
28
29pub fn is_hex_address(value: &str) -> bool {
43 let regex = Regex::new(HEX_CURRENCY_REGEX).expect("is_hex_address");
44 regex.is_match(value)
45}
46
47pub fn is_iso_code(value: &str) -> bool {
61 let regex = Regex::new(ISO_CURRENCY_REGEX).expect("is_iso_code");
62 regex.is_match(value)
63}
64
65pub fn is_iso_hex(value: &str) -> bool {
79 let regex = Regex::new(HEX_CURRENCY_REGEX).expect("_is_hex");
80 regex.is_match(value)
81}
82
83pub trait ToBytes {
85 fn to_bytes(&self) -> Vec<u8>;
87}
88
89#[cfg(test)]
90mod test {
91 use super::*;
92
93 const HEX_ENCODING: &str = "5E7B112523F68D2F5E879DB4EAC51C6698A69304";
94
95 #[test]
96 fn test_is_hex_address() {
97 assert!(is_hex_address(HEX_ENCODING));
98 }
99
100 #[test]
101 fn test_is_iso_code() {
102 let valid_code = "ABC";
103 let valid_code_numeric = "123";
104 let invalid_code_long = "LONG";
105 let invalid_code_short = "NO";
106
107 assert!(is_iso_code(valid_code));
108 assert!(is_iso_code(valid_code_numeric));
109 assert!(!is_iso_code(invalid_code_long));
110 assert!(!is_iso_code(invalid_code_short));
111 }
112
113 #[test]
114 fn test_is_hex() {
115 let valid_hex: &str = "0000000000000000000000005553440000000000";
117 let invalid_hex_chars: &str = "USD0000000000000000000005553440000000000";
118 let invalid_hex_long: &str = "0000000000000000000000005553440000000000123455";
119 let invalid_hex_short: &str = "1234";
120
121 assert!(is_iso_hex(valid_hex));
122 assert!(!is_iso_hex(invalid_hex_long));
123 assert!(!is_iso_hex(invalid_hex_short));
124 assert!(!is_iso_hex(invalid_hex_chars));
125 }
126}