dev
dart 115 lines 3.75 KB
Raw
1 part of 'decred.dart';
2
3 class CWDecred extends Decred {
4 CWDecred() {}
5
6 @override
7 WalletCredentials createDecredNewWalletCredentials(
8 {required String name,
9 String? password,
10 String? passphrase,
11 String? mnemonic,
12 WalletInfo? walletInfo}) =>
13 DecredNewWalletCredentials(
14 name: name,
15 password: password,
16 passphrase: passphrase,
17 mnemonic: mnemonic,
18 walletInfo: walletInfo);
19
20 @override
21 WalletCredentials createDecredRestoreWalletFromSeedCredentials(
22 {required String name,
23 required String mnemonic,
24 required String password,
25 String? passphrase}) =>
26 DecredRestoreWalletFromSeedCredentials(
27 name: name, mnemonic: mnemonic, password: password, passphrase: passphrase);
28
29 @override
30 WalletCredentials createDecredRestoreWalletFromPubkeyCredentials(
31 {required String name, required String pubkey, required String password}) =>
32 DecredRestoreWalletFromPubkeyCredentials(name: name, pubkey: pubkey, password: password);
33
34 @override
35 WalletService createDecredWalletService(Box<UnspentCoinsInfo> unspentCoinSource, bool isDirect) =>
36 DecredWalletService(unspentCoinSource, isDirect);
37
38 @override
39 List<TransactionPriority> getTransactionPriorities() => DecredTransactionPriority.all;
40
41 @override
42 TransactionPriority getDecredTransactionPriorityMedium() => DecredTransactionPriority.medium;
43
44 @override
45 TransactionPriority getDecredTransactionPrioritySlow() => DecredTransactionPriority.slow;
46
47 @override
48 TransactionPriority deserializeDecredTransactionPriority(int raw) =>
49 DecredTransactionPriority.deserialize(raw: raw);
50
51 @override
52 Object createDecredTransactionCredentials(List<Output> outputs, TransactionPriority priority) =>
53 DecredTransactionCredentials(
54 outputs
55 .map((out) => OutputInfo(
56 fiatAmount: out.fiatAmount,
57 cryptoAmount: out.cryptoAmountMoney,
58 address: out.address,
59 note: out.note,
60 sendAll: out.sendAll,
61 extractedAddress: out.extractedAddress,
62 isParsedAddress: out.isParsedAddress,
63 ))
64 .toList(),
65 priority: priority as DecredTransactionPriority,
66 );
67
68 List<WalletInfoAddressInfo> getAddressInfos(Object wallet) {
69 final decredWallet = wallet as DecredWallet;
70 return decredWallet.walletAddresses.getAddressInfos();
71 }
72
73 @override
74 Future<void> updateAddress(Object wallet, String address, String label) async {
75 final decredWallet = wallet as DecredWallet;
76 await decredWallet.walletAddresses.updateAddress(address, label);
77 }
78
79 @override
80 Future<void> generateNewAddress(Object wallet, String label) async {
81 final decredWallet = wallet as DecredWallet;
82 await decredWallet.walletAddresses.generateNewAddress(label);
83 }
84
85 @override
86 List<Unspent> getUnspents(Object wallet) {
87 final decredWallet = wallet as DecredWallet;
88 return decredWallet.unspents();
89 }
90
91 @override
92 void updateUnspents(Object wallet) {
93 final decredWallet = wallet as DecredWallet;
94 decredWallet.unspents();
95 }
96
97 @override
98 int heightByDate(DateTime date) {
99 final genesisBlocktime = DateTime.fromMillisecondsSinceEpoch(1454954400 * 1000);
100 final minutesDiff = date.difference(genesisBlocktime).inMinutes;
101 // Decred has five minute blocks on mainnet.
102 // NOTE: This is off by about a day but is currently unused by decred as we
103 // rescan from the wallet birthday.
104 return minutesDiff ~/ 5;
105 }
106
107 @override
108 List<String> getDecredWordList() => wordlist;
109
110 @override
111 String pubkey(Object wallet) {
112 final decredWallet = wallet as DecredWallet;
113 return decredWallet.pubkey;
114 }
115 }