chore: Improved formatting
e0631d3f
1 file(s) · +35 −17
| 149 | 149 | networks |
|
| 150 | 150 | } |
|
| 151 | 151 | ||
| 152 | + | fn format_balance_smart(balance: f64, symbol: &str) -> String { |
|
| 153 | + | let formatted = if balance >= 1_000_000.0 { |
|
| 154 | + | format!("{:.2}M", balance / 1_000_000.0) |
|
| 155 | + | } else if balance >= 1_000.0 { |
|
| 156 | + | format!("{:.2}K", balance / 1_000.0) |
|
| 157 | + | } else if balance >= 1.0 { |
|
| 158 | + | format!("{:.2}", balance) |
|
| 159 | + | } else if balance > 0.0 { |
|
| 160 | + | format!("{:.6}", balance).trim_end_matches('0').trim_end_matches('.').to_string() |
|
| 161 | + | } else { |
|
| 162 | + | "0".to_string() |
|
| 163 | + | }; |
|
| 164 | + | ||
| 165 | + | format!("{} {}", formatted, symbol) |
|
| 166 | + | } |
|
| 167 | + | ||
| 152 | 168 | async fn fetch_balance( |
|
| 153 | 169 | client: &Client, |
|
| 154 | 170 | address: &str, |
|
| 240 | 256 | } |
|
| 241 | 257 | ||
| 242 | 258 | fn get_eth_logo() -> &'static str { |
|
| 243 | - | r#" --------------4%-------------- |
|
| 244 | - | -------------44HH------------- |
|
| 245 | - | ------------444HHH------------ |
|
| 246 | - | -----------4444HHHH----------- |
|
| 247 | - | ---------~44444HHHHH~--------- |
|
| 248 | - | --------4444444HHHHHHW-------- |
|
| 249 | - | -------4444HHHHWWWWHHHH------- |
|
| 250 | - | ------KHHHHHHHHWWWWWWWWW------ |
|
| 251 | - | ---------HHHHHHWWWWWW--------- |
|
| 252 | - | -------44---HHHWWW---HH------- |
|
| 253 | - | --------~444?----4HHH~-------- |
|
| 254 | - | ----------44444HHHHH---------- |
|
| 255 | - | -----------L444HHHq----------- |
|
| 256 | - | -------------44HH------------- |
|
| 257 | - | --------------4H--------------"# |
|
| 259 | + | r#"------------------------------ |
|
| 260 | + | --------------4%-------------- |
|
| 261 | + | -------------44HH------------- |
|
| 262 | + | ------------444HHH------------ |
|
| 263 | + | -----------4444HHHH----------- |
|
| 264 | + | ---------~44444HHHHH~--------- |
|
| 265 | + | --------4444444HHHHHHW-------- |
|
| 266 | + | -------4444HHHHWWWWHHHH------- |
|
| 267 | + | ------KHHHHHHHHWWWWWWWWW------ |
|
| 268 | + | ---------HHHHHHWWWWWW--------- |
|
| 269 | + | -------44---HHHWWW---HH------- |
|
| 270 | + | --------~444?----4HHH~-------- |
|
| 271 | + | ----------44444HHHHH---------- |
|
| 272 | + | -----------L444HHHq----------- |
|
| 273 | + | -------------44HH------------- |
|
| 274 | + | --------------4H-------------- |
|
| 275 | + | ------------------------------"# |
|
| 258 | 276 | } |
|
| 259 | 277 | ||
| 260 | 278 | async fn fetch_all_balances( |
|
| 401 | 419 | for balance in balances { |
|
| 402 | 420 | match balance { |
|
| 403 | 421 | BalanceResult::Native(eth_balance, network_name) => { |
|
| 404 | - | let balance_str = format!("{:.4} ETH", eth_balance); |
|
| 422 | + | let balance_str = format_balance_smart(eth_balance, "ETH"); |
|
| 405 | 423 | network_balances.entry(network_name).or_default().push(balance_str); |
|
| 406 | 424 | }, |
|
| 407 | 425 | BalanceResult::Token(token_balance) => { |
|
| 408 | - | let balance_str = format!("{:.4} {}", token_balance.balance, token_balance.symbol); |
|
| 426 | + | let balance_str = format_balance_smart(token_balance.balance, &token_balance.symbol); |
|
| 409 | 427 | network_balances.entry(token_balance.network_name).or_default().push(balance_str); |
|
| 410 | 428 | } |
|
| 411 | 429 | } |
|