mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-29 04:49:51 +00:00
This commit introduces support for the Tari wallet, including its transaction priorities, node list paths, wallet services, and related configurations. It also integrates Tari functionality across wallet creation, address handling, fees, seed validation, and exchange views.
72 lines
2.6 KiB
Dart
72 lines
2.6 KiB
Dart
import 'package:cake_wallet/bitcoin/bitcoin.dart';
|
|
import 'package:cake_wallet/core/validator.dart';
|
|
import 'package:cake_wallet/entities/mnemonic_item.dart';
|
|
import 'package:cake_wallet/ethereum/ethereum.dart';
|
|
import 'package:cake_wallet/monero/monero.dart';
|
|
import 'package:cake_wallet/nano/nano.dart';
|
|
import 'package:cake_wallet/polygon/polygon.dart';
|
|
import 'package:cake_wallet/solana/solana.dart';
|
|
import 'package:cake_wallet/tari/tari.dart';
|
|
import 'package:cake_wallet/tron/tron.dart';
|
|
import 'package:cake_wallet/wownero/wownero.dart';
|
|
import 'package:cake_wallet/zano/zano.dart';
|
|
import 'package:cake_wallet/decred/decred.dart';
|
|
import 'package:cake_wallet/utils/language_list.dart';
|
|
import 'package:cw_core/wallet_type.dart';
|
|
|
|
class SeedValidator extends Validator<MnemonicItem> {
|
|
SeedValidator({required this.type, required this.language})
|
|
: _words = getWordList(type: type, language: language),
|
|
super(errorMessage: 'Wrong seed mnemonic');
|
|
|
|
final WalletType type;
|
|
final String language;
|
|
final List<String> _words;
|
|
|
|
static List<String> getWordList(
|
|
{required WalletType type, required String language}) {
|
|
switch (type) {
|
|
case WalletType.bitcoin:
|
|
return getBitcoinWordList(language);
|
|
case WalletType.litecoin:
|
|
return getBitcoinWordList(language);
|
|
case WalletType.monero:
|
|
return monero!.getMoneroWordList(language);
|
|
case WalletType.ethereum:
|
|
return ethereum!.getEthereumWordList(language);
|
|
case WalletType.bitcoinCash:
|
|
return getBitcoinWordList(language);
|
|
case WalletType.nano:
|
|
case WalletType.banano:
|
|
return nano!.getNanoWordList(language);
|
|
case WalletType.polygon:
|
|
return polygon!.getPolygonWordList(language);
|
|
case WalletType.solana:
|
|
return solana!.getSolanaWordList(language);
|
|
case WalletType.tron:
|
|
return tron!.getTronWordList(language);
|
|
case WalletType.wownero:
|
|
return wownero!.getWowneroWordList(language);
|
|
case WalletType.zano:
|
|
return zano!.getWordList(language);
|
|
case WalletType.decred:
|
|
return decred!.getDecredWordList();
|
|
case WalletType.tari:
|
|
return tari!.getTariWordList(language);
|
|
case WalletType.none:
|
|
case WalletType.haven:
|
|
return [];
|
|
}
|
|
}
|
|
|
|
static bool needsNormalization(String language) =>
|
|
["POLYSEED_French", "POLYSEED_Spanish"].contains(language);
|
|
|
|
static List<String> getBitcoinWordList(String language) {
|
|
assert(language.toLowerCase() == LanguageList.english.toLowerCase());
|
|
return bitcoin!.getWordList();
|
|
}
|
|
|
|
@override
|
|
bool isValid(MnemonicItem? value) => _words.contains(value?.text);
|
|
}
|