Back next address button on receive screen

M committed Jan 12, 2022 at 16:49 UTC 91ed52003b0719e68e3e461a0a2d902e0ca0f9d7
3 files changed +24 -13
cw_bitcoin/lib/electrum_wallet.dart
+1 -1
@@ -239,7 +239,7 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
239 }
240
241 final txb = bitcoin.TransactionBuilder(network: networkType);
242 - final changeAddress = getChangeAddress();
242 + final changeAddress = walletAddresses.addresses.last.address;
243 var leftAmount = totalAmount;
244 var totalInputAmount = 0;
245
cw_bitcoin/lib/electrum_wallet_addresses.dart
+14 -3
@@ -35,24 +35,35 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
35
36 ObservableList<BitcoinAddressRecord> addresses;
37
38 + List<BitcoinAddressRecord> get availableAddresses => addresses
39 + .where((addr) => addr.isHidden)
40 + .toList();
41 +
42 int accountIndex;
43
44 @override
45 Future<void> init() async {
46 await generateAddresses();
43 - address = addresses[accountIndex].address;
47 + final _availableAddresses = availableAddresses;
48 +
49 + if (accountIndex >= _availableAddresses.length) {
50 + accountIndex = 0;
51 + }
52 +
53 + address = _availableAddresses[accountIndex].address;
54 await updateAddressesInBox();
55 }
56
57 @action
58 Future<void> nextAddress() async {
59 accountIndex += 1;
60 + final _availableAddresses = availableAddresses;
61
51 - if (accountIndex >= addresses.length) {
62 + if (accountIndex >= _availableAddresses.length) {
63 accountIndex = 0;
64 }
65
55 - address = addresses[accountIndex].address;
66 + address = _availableAddresses[accountIndex].address;
67
68 await updateAddressesInBox();
69 }
lib/src/screens/dashboard/widgets/address_page.dart
+9 -9
@@ -125,15 +125,15 @@ class AddressPage extends StatelessWidget {
125 ],
126 ),
127 ),
128 - ) : Container();
129 - //: PrimaryButton(
130 - // onPressed: () => addressListViewModel.nextAddress(),
131 - // text: 'Next address',
132 - // color: Theme.of(context).buttonColor,
133 - // textColor: Theme.of(context)
134 - // .accentTextTheme
135 - // .display3
136 - // .backgroundColor);
128 + )
129 + : PrimaryButton(
130 + onPressed: () => addressListViewModel.nextAddress(),
131 + text: 'Next address',
132 + color: Theme.of(context).buttonColor,
133 + textColor: Theme.of(context)
134 + .accentTextTheme
135 + .display3
136 + .backgroundColor);
137 })
138 ],
139 ),