mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-17 05:41:29 +02:00
* feat: initial hive -> SQLite Includes migration script and initial work done to remove dependency on hive generators. Also contains some refactoring to make sync code async. Features new dev screen that lists all SQLite tables Aspects that need testing: - backups (from this version, and from previous versions as well) - wallet loading / wallet list - almost everything else - renaming - deletion - sorting in wallet list - wallet groups - wallet seed/keys - wallet switching - wallet creation / restore - all methods - wallet address page - hardware wallet connection (and prompts from mall screens) - contacts - advanced settings in wallet creation - derivation paths - some minor wownero fixes - base, hardware wallets * fix: build errors * fix: Bad state: No element in backup restore * address comments from review * fix: HardwareWalletType
114 lines
3.8 KiB
Dart
114 lines
3.8 KiB
Dart
part of 'decred.dart';
|
|
|
|
class CWDecred extends Decred {
|
|
CWDecred() {}
|
|
|
|
@override
|
|
WalletCredentials createDecredNewWalletCredentials(
|
|
{required String name, WalletInfo? walletInfo}) =>
|
|
DecredNewWalletCredentials(name: name, walletInfo: walletInfo);
|
|
|
|
@override
|
|
WalletCredentials createDecredRestoreWalletFromSeedCredentials(
|
|
{required String name, required String mnemonic, required String password}) =>
|
|
DecredRestoreWalletFromSeedCredentials(name: name, mnemonic: mnemonic, password: password);
|
|
|
|
@override
|
|
WalletCredentials createDecredRestoreWalletFromPubkeyCredentials(
|
|
{required String name, required String pubkey, required String password}) =>
|
|
DecredRestoreWalletFromPubkeyCredentials(name: name, pubkey: pubkey, password: password);
|
|
|
|
@override
|
|
WalletService createDecredWalletService(Box<UnspentCoinsInfo> unspentCoinSource) {
|
|
return DecredWalletService(unspentCoinSource);
|
|
}
|
|
|
|
@override
|
|
List<TransactionPriority> getTransactionPriorities() => DecredTransactionPriority.all;
|
|
|
|
@override
|
|
TransactionPriority getDecredTransactionPriorityMedium() => DecredTransactionPriority.medium;
|
|
|
|
@override
|
|
TransactionPriority getDecredTransactionPrioritySlow() => DecredTransactionPriority.slow;
|
|
|
|
@override
|
|
TransactionPriority deserializeDecredTransactionPriority(int raw) =>
|
|
DecredTransactionPriority.deserialize(raw: raw);
|
|
|
|
@override
|
|
Object createDecredTransactionCredentials(List<Output> outputs, TransactionPriority priority) =>
|
|
DecredTransactionCredentials(
|
|
outputs
|
|
.map((out) => OutputInfo(
|
|
fiatAmount: out.fiatAmount,
|
|
cryptoAmount: out.cryptoAmount,
|
|
address: out.address,
|
|
note: out.note,
|
|
sendAll: out.sendAll,
|
|
extractedAddress: out.extractedAddress,
|
|
isParsedAddress: out.isParsedAddress,
|
|
formattedCryptoAmount: out.formattedCryptoAmount))
|
|
.toList(),
|
|
priority: priority as DecredTransactionPriority);
|
|
|
|
List<WalletInfoAddressInfo> getAddressInfos(Object wallet) {
|
|
final decredWallet = wallet as DecredWallet;
|
|
return decredWallet.walletAddresses.getAddressInfos();
|
|
}
|
|
|
|
@override
|
|
Future<void> updateAddress(Object wallet, String address, String label) async {
|
|
final decredWallet = wallet as DecredWallet;
|
|
await decredWallet.walletAddresses.updateAddress(address, label);
|
|
}
|
|
|
|
@override
|
|
Future<void> generateNewAddress(Object wallet, String label) async {
|
|
final decredWallet = wallet as DecredWallet;
|
|
await decredWallet.walletAddresses.generateNewAddress(label);
|
|
}
|
|
|
|
@override
|
|
String formatterDecredAmountToString({required int amount}) =>
|
|
decredAmountToString(amount: amount);
|
|
|
|
@override
|
|
double formatterDecredAmountToDouble({required int amount}) =>
|
|
decredAmountToDouble(amount: amount);
|
|
|
|
@override
|
|
int formatterStringDoubleToDecredAmount(String amount) => stringDoubleToDecredAmount(amount);
|
|
|
|
@override
|
|
List<Unspent> getUnspents(Object wallet) {
|
|
final decredWallet = wallet as DecredWallet;
|
|
return decredWallet.unspents();
|
|
}
|
|
|
|
@override
|
|
void updateUnspents(Object wallet) {
|
|
final decredWallet = wallet as DecredWallet;
|
|
decredWallet.unspents();
|
|
}
|
|
|
|
@override
|
|
int heightByDate(DateTime date) {
|
|
final genesisBlocktime = DateTime.fromMillisecondsSinceEpoch(1454954400 * 1000);
|
|
final minutesDiff = date.difference(genesisBlocktime).inMinutes;
|
|
// Decred has five minute blocks on mainnet.
|
|
// NOTE: This is off by about a day but is currently unused by decred as we
|
|
// rescan from the wallet birthday.
|
|
return minutesDiff ~/ 5;
|
|
}
|
|
|
|
@override
|
|
List<String> getDecredWordList() => wordlist;
|
|
|
|
@override
|
|
String pubkey(Object wallet) {
|
|
final decredWallet = wallet as DecredWallet;
|
|
return decredWallet.pubkey;
|
|
}
|
|
}
|