From dc1b369e08048f6c83242ab2f8e8ff358923de76 Mon Sep 17 00:00:00 2001 From: Omar Date: Wed, 10 Jun 2026 19:55:47 +0200 Subject: [PATCH] fix: use buy-specific address for buy/sell flow and restrict lightning invoice generation to bitcoin wallets --- lib/src/screens/buy/buy_sell_page.dart | 10 +++++----- lib/view_model/exchange/exchange_view_model.dart | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/src/screens/buy/buy_sell_page.dart b/lib/src/screens/buy/buy_sell_page.dart index 6d03445fb..73c238b57 100644 --- a/lib/src/screens/buy/buy_sell_page.dart +++ b/lib/src/screens/buy/buy_sell_page.dart @@ -325,7 +325,7 @@ class BuySellPage extends BasePage { } }); - reaction((_) => buySellViewModel.wallet.walletAddresses.addressForExchange, (String address) { + reaction((_) => buySellViewModel.wallet.walletAddresses.addressForBuy, (String address) { if (buySellViewModel.cryptoCurrency == CryptoCurrency.xmr) { cryptoCurrencyKey.currentState!.changeAddress(address: address); } @@ -359,7 +359,7 @@ class BuySellPage extends BasePage { key.currentState!.changeAddress( address: - isCurrentTypeWallet ? buySellViewModel.wallet.walletAddresses.addressForExchange : ''); + isCurrentTypeWallet ? buySellViewModel.wallet.walletAddresses.addressForBuy : ''); key.currentState!.changeAmount(amount: ''); } @@ -371,9 +371,9 @@ class BuySellPage extends BasePage { if (isCurrentTypeWallet) { key.currentState!.changeWalletName(buySellViewModel.wallet.name); key.currentState!.addressController.text = - buySellViewModel.wallet.walletAddresses.addressForExchange; + buySellViewModel.wallet.walletAddresses.addressForBuy; } else if (key.currentState!.addressController.text == - buySellViewModel.wallet.walletAddresses.addressForExchange) { + buySellViewModel.wallet.walletAddresses.addressForBuy) { key.currentState!.changeWalletName(''); key.currentState!.addressController.text = ''; } @@ -429,7 +429,7 @@ class BuySellPage extends BasePage { initialCurrency: buySellViewModel.cryptoCurrency, initialWalletName: '', initialAddress: buySellViewModel.cryptoCurrency == buySellViewModel.wallet.currency - ? buySellViewModel.wallet.walletAddresses.addressForExchange + ? buySellViewModel.wallet.walletAddresses.addressForBuy : buySellViewModel.cryptoCurrencyAddress, initialIsAmountEditable: true, isAmountEstimated: true, diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 03d0ef4db..5fb896f53 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -1071,6 +1071,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with } if (depositCurrency == CryptoCurrency.btcln && + wallet.type == WalletType.bitcoin && depositAddress == wallet.walletAddresses.addressForExchange) { final invoice = await bitcoin!.getLightningInvoice(wallet, BigInt.zero); if (invoice != null) { @@ -1079,6 +1080,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with } if (receiveCurrency == CryptoCurrency.btcln && + wallet.type == WalletType.bitcoin && receiveAddress == wallet.walletAddresses.addressForExchange) { final invoice = await bitcoin!.getLightningInvoice(wallet, BigInt.zero); if (invoice != null) {