stack_wallet/lib/models/node_model.dart
2024-11-26 09:18:35 -06:00

123 lines
2.9 KiB
Dart

/*
* This file is part of Stack Wallet.
*
* Copyright (c) 2023 Cypher Stack
* All Rights Reserved.
* The code is distributed under GPLv3 license, see LICENSE file for details.
* Generated by Cypher Stack on 2023-05-26
*
*/
import 'package:hive/hive.dart';
import '../utilities/default_nodes.dart';
import '../utilities/flutter_secure_storage_interface.dart';
part 'type_adaptors/node_model.g.dart';
// @HiveType(typeId: 12)
class NodeModel {
// @HiveField(0)
final String id;
// @HiveField(1)
final String host;
// @HiveField(2)
final int port;
// @HiveField(3)
final String name;
// @HiveField(4)
final bool useSSL;
// @HiveField(5)
final String? loginName;
// @HiveField(6)
final bool enabled;
// @HiveField(7)
final String coinName;
// @HiveField(8)
final bool isFailover;
// @HiveField(9)
final bool isDown;
// @HiveField(10)
final bool? trusted;
// @HiveField(11)
final bool torEnabled;
// @HiveField(12)
final bool clearnetEnabled;
NodeModel({
required this.host,
required this.port,
required this.name,
required this.id,
required this.useSSL,
required this.enabled,
required this.coinName,
required this.isFailover,
required this.isDown,
required this.torEnabled,
required this.clearnetEnabled,
this.loginName,
this.trusted,
});
NodeModel copyWith({
String? host,
int? port,
String? name,
bool? useSSL,
String? loginName,
bool? enabled,
String? coinName,
bool? isFailover,
bool? isDown,
bool? trusted,
bool? torEnabled,
bool? clearnetEnabled,
}) {
return NodeModel(
host: host ?? this.host,
port: port ?? this.port,
name: name ?? this.name,
id: id,
useSSL: useSSL ?? this.useSSL,
loginName: loginName ?? this.loginName,
enabled: enabled ?? this.enabled,
coinName: coinName ?? this.coinName,
isFailover: isFailover ?? this.isFailover,
isDown: isDown ?? this.isDown,
trusted: trusted ?? this.trusted,
torEnabled: torEnabled ?? this.torEnabled,
clearnetEnabled: clearnetEnabled ?? this.clearnetEnabled,
);
}
/// convenience getter to retrieve login password
Future<String?> getPassword(SecureStorageInterface secureStorage) async {
return await secureStorage.read(key: "${id}_nodePW");
}
Map<String, dynamic> toMap() {
final Map<String, dynamic> map = {};
map['host'] = host;
map['port'] = port;
map['name'] = name;
map['id'] = id;
map['useSSL'] = useSSL;
map['loginName'] = loginName;
map['enabled'] = enabled;
map['coinName'] = coinName;
map['isFailover'] = isFailover;
map['isDown'] = isDown;
map['trusted'] = trusted;
map['torEnabled'] = torEnabled;
map['clearEnabled'] = clearnetEnabled;
return map;
}
bool get isDefault => id.startsWith(DefaultNodes.defaultNodeIdPrefix);
@override
String toString() {
return toMap().toString();
}
}