use super::{
consts::{LIGHTER_MAINNET_CHAIN_ID, LIGHTER_TESTNET_CHAIN_ID},
enums::LighterEnvironment,
};
const LIGHTER_MAINNET_HTTP_URL: &str = "https://mainnet.zklighter.elliot.ai";
const LIGHTER_MAINNET_WS_URL: &str = "wss://mainnet.zklighter.elliot.ai/stream";
const LIGHTER_TESTNET_HTTP_URL: &str = "https://testnet.zklighter.elliot.ai";
const LIGHTER_TESTNET_WS_URL: &str = "wss://testnet.zklighter.elliot.ai/stream";
#[must_use]
pub const fn lighter_http_base_url(environment: LighterEnvironment) -> &'static str {
match environment {
LighterEnvironment::Mainnet => LIGHTER_MAINNET_HTTP_URL,
LighterEnvironment::Testnet => LIGHTER_TESTNET_HTTP_URL,
}
}
#[must_use]
pub const fn lighter_ws_url(environment: LighterEnvironment) -> &'static str {
match environment {
LighterEnvironment::Mainnet => LIGHTER_MAINNET_WS_URL,
LighterEnvironment::Testnet => LIGHTER_TESTNET_WS_URL,
}
}
#[must_use]
pub const fn lighter_chain_id(environment: LighterEnvironment) -> u32 {
match environment {
LighterEnvironment::Mainnet => LIGHTER_MAINNET_CHAIN_ID,
LighterEnvironment::Testnet => LIGHTER_TESTNET_CHAIN_ID,
}
}
#[cfg(test)]
mod tests {
use rstest::rstest;
use super::*;
#[rstest]
fn test_http_base_url() {
assert_eq!(
lighter_http_base_url(LighterEnvironment::Mainnet),
LIGHTER_MAINNET_HTTP_URL,
);
assert_eq!(
lighter_http_base_url(LighterEnvironment::Testnet),
LIGHTER_TESTNET_HTTP_URL,
);
}
#[rstest]
fn test_ws_url() {
assert_eq!(
lighter_ws_url(LighterEnvironment::Mainnet),
LIGHTER_MAINNET_WS_URL,
);
assert_eq!(
lighter_ws_url(LighterEnvironment::Testnet),
LIGHTER_TESTNET_WS_URL,
);
}
#[rstest]
fn test_chain_id() {
assert_eq!(lighter_chain_id(LighterEnvironment::Mainnet), 304);
assert_eq!(lighter_chain_id(LighterEnvironment::Testnet), 300);
}
}