use starknet::core::types::Felt;
use crate::network::Network;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Token {
pub symbol: String,
pub name: String,
pub decimals: u8,
pub address: Felt,
}
impl Token {
pub fn new(symbol: &str, name: &str, decimals: u8, address: Felt) -> Self {
Self {
symbol: symbol.to_string(),
name: name.to_string(),
decimals,
address,
}
}
}
pub fn all(network: Network) -> Vec<Token> {
match network {
Network::Mainnet => mainnet::all(),
Network::Sepolia | Network::Devnet => sepolia::all(),
}
}
pub fn by_symbol(network: Network, symbol: &str) -> Option<Token> {
match network {
Network::Mainnet => mainnet::by_symbol(symbol),
Network::Sepolia | Network::Devnet => sepolia::by_symbol(symbol),
}
}
include!(concat!(env!("OUT_DIR"), "/tokens_generated.rs"));