use bech32::Hrp;
use ootle_network::Network;
pub(crate) const HRP_MAINNET: Hrp = Hrp::parse_unchecked("otl_");
pub(crate) const HRP_LOCALNET: Hrp = Hrp::parse_unchecked("otl_loc_");
pub(crate) const HRP_ESME: Hrp = Hrp::parse_unchecked("otl_esm_");
pub(crate) const HRP_IGOR: Hrp = Hrp::parse_unchecked("otl_igr_");
pub(crate) const HRP_NEXTNET: Hrp = Hrp::parse_unchecked("otl_nxt_");
pub(crate) const HRP_STAGENET: Hrp = Hrp::parse_unchecked("otl_stg_");
pub(crate) const fn hrp_from_network(network: Network) -> Hrp {
match network {
Network::MainNet => HRP_MAINNET,
Network::LocalNet => HRP_LOCALNET,
Network::Esmeralda => HRP_ESME,
Network::Igor => HRP_IGOR,
Network::NextNet => HRP_NEXTNET,
Network::StageNet => HRP_STAGENET,
}
}
pub(crate) fn network_from_hrp(hrp: &Hrp) -> Option<Network> {
if *hrp == HRP_MAINNET {
Some(Network::MainNet)
} else if *hrp == HRP_LOCALNET {
Some(Network::LocalNet)
} else if *hrp == HRP_ESME {
Some(Network::Esmeralda)
} else if *hrp == HRP_IGOR {
Some(Network::Igor)
} else if *hrp == HRP_NEXTNET {
Some(Network::NextNet)
} else if *hrp == HRP_STAGENET {
Some(Network::StageNet)
} else {
None
}
}