use crate::regexes::TRON_ADDRESS_REGEX;
pub fn extract_tron_address(text: &str) -> Option<String> {
let pattern = &TRON_ADDRESS_REGEX;
pattern.find(text).map(|m| m.as_str().to_string())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_extract_tron_address() {
let input = "
Some random text
TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7
more random text
";
let expected_address = Some("TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7".to_string());
let result = extract_tron_address(input);
assert_eq!(result, expected_address);
}
#[test]
fn test_no_addresses() {
let input = "This is a test with no valid Tron addresses!";
let expected_address = None;
let result = extract_tron_address(input);
assert_eq!(result, expected_address);
}
#[test]
fn test_multiple_addresses() {
let input = "
TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7
TPL66VynYgJoq4AuirFx9pPJTtL2PdRsy4
";
let expected_address = Some("TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7".to_string());
let result = extract_tron_address(input);
assert_eq!(result, expected_address);
}
#[test]
fn test_link() {
let input = "https://dexscreener.com/tron/TDECSYjDTLFVRtNHeydKkKJq6kXU9hHDex";
let expected_address = Some("TDECSYjDTLFVRtNHeydKkKJq6kXU9hHDex".to_string());
let result = extract_tron_address(input);
assert_eq!(expected_address, result);
}
}