use miden_client::rpc::Endpoint;
use miden_protocol::address::NetworkId;
pub struct MidenCedar;
impl MidenCedar {
pub const RPC_HOST: &'static str = "rpc.cedar.miden.io";
pub const PROVER_ENDPOINT: &'static str = "https://tx-prover.cedar.miden.io";
pub const NOTE_TRANSPORT_ENDPOINT: &'static str = "https://transport.cedar.miden.io";
pub const ADDRESS_PREFIX: &'static str = "mm";
pub fn endpoint() -> Endpoint {
Endpoint::new("https".to_string(), Self::RPC_HOST.to_string(), None)
}
pub fn network_id() -> NetworkId {
NetworkId::new(Self::ADDRESS_PREFIX).expect("Cedar address prefix is a valid network ID")
}
pub(crate) fn matches(endpoint: &Endpoint) -> bool {
endpoint == &Self::endpoint()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn parsed_cedar_url_matches_the_preset() {
let parsed = Endpoint::try_from("https://rpc.cedar.miden.io").unwrap();
assert!(MidenCedar::matches(&parsed));
assert_eq!(
MidenCedar::network_id().as_str(),
MidenCedar::ADDRESS_PREFIX
);
}
}