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