What changed, and why it matters
This commit is a routine user-interface polish: it adds the Solana coin icon asset, wires it up so Solana/SPL token screens show the correct icon, and replaces a placeholder TODO mint address with the actual token address. There is no security-relevant change.
No security action required; treat as normal UI feature completion.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff adds a solana field to the ThemeAssets model and its deserialization, uses widget.token.address instead of the hard-coded TODO string in SolTokenSelectItem, and adds a Solana case to the coinIconProvider switch. All changes are UI/asset plumbing with no cryptographic, network, or permission changes.
Changed components
lib/models/isar/stack_theme.dartlib/pages/token_view/sub_widgets/sol_token_select_item.dartlib/themes/coin_icon_provider.dartInspect captured patch +6 / −2
diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart
index 476494d..68e0f04 100644
--- a/lib/models/isar/stack_theme.dart
+++ b/lib/models/isar/stack_theme.dart
@@ -1944,6 +1944,7 @@ class ThemeAssets implements IThemeAssets {
late final String namecoin;
late final String particl;
late final String mimblewimblecoin;
+ late final String solana;
late final String bitcoinImage;
late final String bitcoincashImage;
late final String dogecoinImage;
@@ -2011,6 +2012,7 @@ class ThemeAssets implements IThemeAssets {
..wownero = "$themeId/assets/${json["wownero"] as String}"
..namecoin = "$themeId/assets/${json["namecoin"] as String}"
..particl = "$themeId/assets/${json["particl"] as String}"
+ ..solana = "$themeId/assets/${json["solana"] as String}"
..bitcoinImage = "$themeId/assets/${json["bitcoin_image"] as String}"
..bitcoincashImage =
"$themeId/assets/${json["bitcoincash_image"] as String}"
diff --git a/lib/pages/token_view/sub_widgets/sol_token_select_item.dart b/lib/pages/token_view/sub_widgets/sol_token_select_item.dart
index 37c818c..774109d 100644
--- a/lib/pages/token_view/sub_widgets/sol_token_select_item.dart
+++ b/lib/pages/token_view/sub_widgets/sol_token_select_item.dart
@@ -80,8 +80,8 @@ class _SolTokenSelectItemState extends ConsumerState<SolTokenSelectItem> {
onPressed: _onPressed,
child: Row(
children: [
- const SolTokenIcon(
- mintAddress: "TODO_TOKEN_MINT", // TODO [prio=high]: Replace with widget.token.address.
+ SolTokenIcon(
+ mintAddress: widget.token.address,
size: 32,
),
SizedBox(width: isDesktop ? 12 : 10),
diff --git a/lib/themes/coin_icon_provider.dart b/lib/themes/coin_icon_provider.dart
index 1deb22b..572adb1 100644
--- a/lib/themes/coin_icon_provider.dart
+++ b/lib/themes/coin_icon_provider.dart
@@ -42,6 +42,8 @@ final coinIconProvider = Provider.family<String, CryptoCurrency>((ref, coin) {
return assets.particl;
case const (Ethereum):
return assets.ethereum;
+ case const (Solana):
+ return assets.solana;
default:
return assets.stackIcon;
}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.