fix: use buy-specific address for buy/sell flow and restrict lightning invoice generation to bitcoin wallets
Omar committed
Jun 10, 2026 at 19:55 UTC
dc1b369e08048f6c83242ab2f8e8ff358923de76
2 files changed
+7
-5
lib/src/screens/buy/buy_sell_page.dart
+5
-5
@@ -325,7 +325,7 @@ class BuySellPage extends BasePage {
325
}
326
});
327
328
- reaction((_) => buySellViewModel.wallet.walletAddresses.addressForExchange, (String address) {
328
+ reaction((_) => buySellViewModel.wallet.walletAddresses.addressForBuy, (String address) {
329
if (buySellViewModel.cryptoCurrency == CryptoCurrency.xmr) {
330
cryptoCurrencyKey.currentState!.changeAddress(address: address);
331
}
@@ -359,7 +359,7 @@ class BuySellPage extends BasePage {
359
360
key.currentState!.changeAddress(
361
address:
362
- isCurrentTypeWallet ? buySellViewModel.wallet.walletAddresses.addressForExchange : '');
362
+ isCurrentTypeWallet ? buySellViewModel.wallet.walletAddresses.addressForBuy : '');
363
364
key.currentState!.changeAmount(amount: '');
365
}
@@ -371,9 +371,9 @@ class BuySellPage extends BasePage {
371
if (isCurrentTypeWallet) {
372
key.currentState!.changeWalletName(buySellViewModel.wallet.name);
373
key.currentState!.addressController.text =
374
- buySellViewModel.wallet.walletAddresses.addressForExchange;
374
+ buySellViewModel.wallet.walletAddresses.addressForBuy;
375
} else if (key.currentState!.addressController.text ==
376
- buySellViewModel.wallet.walletAddresses.addressForExchange) {
376
+ buySellViewModel.wallet.walletAddresses.addressForBuy) {
377
key.currentState!.changeWalletName('');
378
key.currentState!.addressController.text = '';
379
}
@@ -429,7 +429,7 @@ class BuySellPage extends BasePage {
429
initialCurrency: buySellViewModel.cryptoCurrency,
430
initialWalletName: '',
431
initialAddress: buySellViewModel.cryptoCurrency == buySellViewModel.wallet.currency
432
- ? buySellViewModel.wallet.walletAddresses.addressForExchange
432
+ ? buySellViewModel.wallet.walletAddresses.addressForBuy
433
: buySellViewModel.cryptoCurrencyAddress,
434
initialIsAmountEditable: true,
435
isAmountEstimated: true,
lib/view_model/exchange/exchange_view_model.dart
+2
@@ -1071,6 +1071,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
1071
}
1072
1073
if (depositCurrency == CryptoCurrency.btcln &&
1074
+ wallet.type == WalletType.bitcoin &&
1075
depositAddress == wallet.walletAddresses.addressForExchange) {
1076
final invoice = await bitcoin!.getLightningInvoice(wallet, BigInt.zero);
1077
if (invoice != null) {
@@ -1079,6 +1080,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
1080
}
1081
1082
if (receiveCurrency == CryptoCurrency.btcln &&
1083
+ wallet.type == WalletType.bitcoin &&
1084
receiveAddress == wallet.walletAddresses.addressForExchange) {
1085
final invoice = await bitcoin!.getLightningInvoice(wallet, BigInt.zero);
1086
if (invoice != null) {