mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-22 06:28:39 +02:00
CAKE-343 | added wallet_addresses.dart, monero_wallet_addresses.dart, electrum_wallet_addresses.dart, wallet_addresses_credentials.dart, monero_wallet_addresses_credentials.dart and electrum_wallet_addresses_credentials.dart to the app; applied ElectrumWalletAddresses to electrum_wallet.dart and MoneroWalletAddresses to monero_wallet.dart; fixed contact_list_view_model.dart, other view models and services
This commit is contained in:
@@ -44,7 +44,6 @@ class BitcoinWalletService extends WalletService<
|
||||
final wallet = await BitcoinWalletBase.open(
|
||||
password: password, name: name, walletInfo: walletInfo);
|
||||
await wallet.init();
|
||||
await wallet.updateAddressesInfo();
|
||||
return wallet;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'package:cake_wallet/bitcoin/electrum_wallet_addresses.dart';
|
||||
import 'package:cake_wallet/bitcoin/electrum_wallet_addresses_credentials.dart';
|
||||
import 'package:mobx/mobx.dart';
|
||||
import 'package:rxdart/subjects.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
@@ -63,6 +65,8 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
|
||||
ElectrumTransactionHistory(walletInfo: walletInfo, password: password);
|
||||
_unspent = [];
|
||||
_scripthashesUpdateSubject = {};
|
||||
_walletAddressInBox = ElectrumWalletAddresses(walletInfo);
|
||||
_walletAddressInBoxCredentials = ElectrumWalletAddressesCredentials();
|
||||
}
|
||||
|
||||
static int estimatedTransactionSize(int inputsCount, int outputsCounts) =>
|
||||
@@ -93,6 +97,9 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
|
||||
|
||||
String get xpub => hd.base58;
|
||||
|
||||
ElectrumWalletAddresses _walletAddressInBox;
|
||||
ElectrumWalletAddressesCredentials _walletAddressInBoxCredentials;
|
||||
|
||||
@override
|
||||
String get seed => mnemonic;
|
||||
|
||||
@@ -113,6 +120,7 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
|
||||
await generateAddresses();
|
||||
address = addresses[_accountIndex].address;
|
||||
await transactionHistory.init();
|
||||
await _updateWalletAddressInBox();
|
||||
}
|
||||
|
||||
@action
|
||||
@@ -125,8 +133,6 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
|
||||
|
||||
address = addresses[_accountIndex].address;
|
||||
|
||||
await updateAddressesInfo();
|
||||
|
||||
await save();
|
||||
}
|
||||
|
||||
@@ -364,6 +370,7 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
|
||||
final path = await makePath();
|
||||
await write(path: path, password: _password, data: toJSON());
|
||||
await transactionHistory.save();
|
||||
await _updateWalletAddressInBox();
|
||||
}
|
||||
|
||||
bitcoin.ECPair keyPairFor({@required int index}) =>
|
||||
@@ -466,4 +473,9 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
|
||||
balance = await _fetchBalances();
|
||||
await save();
|
||||
}
|
||||
|
||||
Future<void> _updateWalletAddressInBox() async {
|
||||
_walletAddressInBoxCredentials.address = address;
|
||||
await _walletAddressInBox.update(_walletAddressInBoxCredentials);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import 'package:cake_wallet/bitcoin/electrum_wallet_addresses_credentials.dart';
|
||||
import 'package:cake_wallet/entities/wallet_addresses.dart';
|
||||
import 'package:cake_wallet/entities/wallet_addresses_credentials.dart';
|
||||
import 'package:cake_wallet/entities/wallet_info.dart';
|
||||
|
||||
class ElectrumWalletAddresses extends WalletAddresses {
|
||||
ElectrumWalletAddresses(WalletInfo walletInfo) : super(walletInfo);
|
||||
|
||||
@override
|
||||
Future<void> update(WalletAddressesCredentials credentials) async {
|
||||
try {
|
||||
if (credentials == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final _credentials = credentials as ElectrumWalletAddressesCredentials;
|
||||
final _address = _credentials.address;
|
||||
final _label = '';
|
||||
|
||||
if (_address == null || _address.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
addresses.clear();
|
||||
addresses[_address] = _label;
|
||||
|
||||
await save();
|
||||
} catch (e) {
|
||||
print(e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import 'package:cake_wallet/entities/wallet_addresses_credentials.dart';
|
||||
|
||||
class ElectrumWalletAddressesCredentials extends WalletAddressesCredentials {
|
||||
ElectrumWalletAddressesCredentials();
|
||||
|
||||
String address;
|
||||
}
|
||||
@@ -45,7 +45,6 @@ class LitecoinWalletService extends WalletService<
|
||||
final wallet = await LitecoinWalletBase.open(
|
||||
password: password, name: name, walletInfo: walletInfo);
|
||||
await wallet.init();
|
||||
await wallet.updateAddressesInfo();
|
||||
return wallet;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user