fix: Handle ethereum QR for pay anything (#3250)

David Adegoke committed May 21, 2026 at 16:38 UTC 087c2b9411321d33e506cf448fa4599825307cba
1 file changed +5 -4
lib/src/widgets/bottom_sheet/token_selection_bottom_sheet.dart
+5 -4
@@ -78,7 +78,7 @@ class _TokenSelectionContentState extends State<_TokenSelectionContent> {
78 void initState() {
79 super.initState();
80 final baseNetwork = widget.fixedNetwork ?? WalletType.ethereum;
81 - selectedNetwork = _resolveGenericETHDetectionResultToSpecificChain(baseNetwork);
81 + selectedNetwork = _resolveGenericETHDetectionResultToSpecificChain(baseNetwork, widget.paymentRequest.scheme.isNotEmpty);
82 _autoSelectToken();
83 }
84
@@ -101,8 +101,9 @@ class _TokenSelectionContentState extends State<_TokenSelectionContent> {
101 return null;
102 }
103
104 - WalletType _resolveGenericETHDetectionResultToSpecificChain(WalletType network) {
105 - if (network != WalletType.ethereum) return network;
104 + WalletType _resolveGenericETHDetectionResultToSpecificChain(WalletType network, bool hasURIScheme) {
105 + if(hasURIScheme || network != WalletType.ethereum) return network;
106 +
107 final current = widget.paymentViewModel.currentWalletType;
108 if (isEVMCompatibleChain(current)) return current;
109 return network;
@@ -112,7 +113,7 @@ class _TokenSelectionContentState extends State<_TokenSelectionContent> {
113 final initialNetwork = selectedNetwork;
114 if (initialNetwork == null || !mounted) return;
115
115 - final network = _resolveGenericETHDetectionResultToSpecificChain(initialNetwork);
116 + final network = _resolveGenericETHDetectionResultToSpecificChain(initialNetwork, widget.paymentRequest.scheme.isNotEmpty);
117
118 setState(() {
119 selectedNetwork = network;