use crate::constants::{ BSC_TESTNET_RPC_URL, FUJI_RPC_URL, GOERLI_RPC_URL, MUMBAI_RPC_URL };
use serde::{ Deserialize, Serialize };
#[derive(Clone, Copy, Debug, Deserialize, Hash, Eq, PartialEq, Serialize, Default, PartialOrd, Ord)]
pub enum Chains {
#[serde(rename = "ETHEREUM")]
#[default]
Ethereum,
#[serde(rename = "POLYGON")]
Polygon,
#[serde(rename = "BSC")]
Bsc,
#[serde(rename = "AVALANCHE")]
Avalanche,
}
impl Chains {
#[must_use]
pub fn get_rpc_url(&self) -> String {
let rpc_url = match self {
Self::Ethereum => GOERLI_RPC_URL,
Self::Polygon => MUMBAI_RPC_URL,
Self::Avalanche => FUJI_RPC_URL,
Self::Bsc => BSC_TESTNET_RPC_URL,
};
rpc_url.to_string()
}
#[must_use]
pub fn get_testnets(&self) -> String {
let webhook_url = match self {
Self::Ethereum => "GOERLI",
Self::Polygon => "MUMBAI",
Self::Avalanche => "FUJI",
Self::Bsc => "BNBCHAIN_TESTNET",
};
webhook_url.to_string()
}
}