Skip to main content

eth_icons/modules/
smoldapp.rs

1use crate::{IconQuery, IconSource};
2
3/// [source](https://tokens.smold.app/ethereum)
4#[derive(Clone)]
5pub struct Smoldapp;
6
7#[async_trait::async_trait]
8impl IconSource for Smoldapp {
9    fn name(&self) -> &'static str {
10        "smoldapp"
11    }
12
13    fn url(&self, query: &IconQuery) -> Option<String> {
14        match query {
15            IconQuery::Network(network_id) => Some(format!(
16                "https://raw.githubusercontent.com/smoldapp/tokenassets/main/chains/{}/logo.svg",
17                network_id
18            )),
19            IconQuery::Native(network_id) => {
20                if *network_id != 1 {
21                    return None;
22                }
23                Some("https://raw.githubusercontent.com/smoldapp/tokenassets/main/tokens/1/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee/logo.svg".to_string())
24            }
25            IconQuery::ERC20(network_id, address) => Some(format!(
26                "https://raw.githubusercontent.com/smoldapp/tokenassets/main/tokens/{}/{}/logo.svg",
27                network_id,
28                address.to_lowercase()
29            )),
30        }
31    }
32}