mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 03:59:23 +00:00
55 lines
1.5 KiB
Dart
55 lines
1.5 KiB
Dart
import 'package:cake_wallet/src/domain/common/wallet_info.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:hive/hive.dart';
|
|
import 'package:mobx/mobx.dart';
|
|
import 'package:cake_wallet/core/wallet_credentials.dart';
|
|
import 'package:cake_wallet/src/domain/common/wallet_type.dart';
|
|
import 'package:cake_wallet/view_model/wallet_creation_state.dart';
|
|
|
|
part 'wallet_creation_vm.g.dart';
|
|
|
|
class WalletCreationVM = WalletCreationVMBase with _$WalletCreationVM;
|
|
|
|
abstract class WalletCreationVMBase with Store {
|
|
WalletCreationVMBase(this._walletInfoSource,
|
|
{@required this.type, @required this.isRecovery}) {
|
|
state = InitialWalletCreationState();
|
|
name = '';
|
|
}
|
|
|
|
@observable
|
|
String name;
|
|
|
|
@observable
|
|
WalletCreationState state;
|
|
|
|
final WalletType type;
|
|
|
|
final bool isRecovery;
|
|
|
|
Box<WalletInfo> _walletInfoSource;
|
|
|
|
Future<void> create({dynamic options}) async {
|
|
try {
|
|
state = WalletCreating();
|
|
await process(getCredentials(options));
|
|
final id = walletTypeToString(type).toLowerCase() + '_' + name;
|
|
final walletInfo = WalletInfo(
|
|
id: id,
|
|
name: name,
|
|
type: type,
|
|
isRecovery: isRecovery,
|
|
restoreHeight: 0);
|
|
await _walletInfoSource.add(walletInfo);
|
|
state = WalletCreatedSuccessfully();
|
|
} catch (e) {
|
|
state = WalletCreationFailure(error: e.toString());
|
|
}
|
|
}
|
|
|
|
WalletCredentials getCredentials(dynamic options) =>
|
|
throw UnimplementedError();
|
|
|
|
Future<void> process(WalletCredentials credentials) =>
|
|
throw UnimplementedError();
|
|
}
|