wallet_options.dart 7.23 KiB
import 'dart:io';
import 'package:crypto/crypto.dart';
import 'package:durt/durt.dart';
import 'package:fast_base58/fast_base58.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:image_picker/image_picker.dart';
import 'package:truncate/truncate.dart';
class WalletOptionsProvider with ChangeNotifier {
TextEditingController pubkey = TextEditingController();
final TextEditingController _newWalletName = TextEditingController();
bool isWalletUnlock = false;
bool ischangedPin = false;
TextEditingController newPin = TextEditingController();
bool isEditing = false;
bool isBalanceBlur = true;
FocusNode walletNameFocus = FocusNode();
TextEditingController nameController = TextEditingController();
late bool isDefaultWallet;
Future<NewWallet>? get badWallet => null;
String _getPubkeyFromDewif(
String? _dewif, _pin, int _pinLenght, int? derivation) {
RegExp regExp = RegExp(
r'^[A-Z0-9]+$',
caseSensitive: false,
multiLine: false,
);
if (regExp.hasMatch(_pin) == true && _pin.length == _pinLenght) {
} else {
return 'false';
}
if (derivation != -1) {
try {
final _wallet = HdWallet.fromDewif(_dewif!, _pin, lang: appLang);
pubkey.text = _wallet.getPubkey(derivation!);
log.d(pubkey.text);
notifyListeners();
return pubkey.text;
} catch (e) {
log.w('Bad PIN code !\n' + e.toString());
notifyListeners();
return 'false';
}
} else {
try {
pubkey.text = CesiumWallet.fromDewif(_dewif!, _pin).pubkey;
notifyListeners();
return pubkey.text;
} catch (e) {
log.w('Bad PIN code !\n' + e.toString());
notifyListeners();
return 'false';
}
}
}
String? readLocalWallet(
context, WalletData _wallet, String _pin, int _pinLenght,
{String? mnemonic}) {