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;