cake_wallet/lib/entities/node_list.dart

48 lines
1.2 KiB
Dart
Raw Normal View History

2020-01-04 19:31:52 +00:00
import 'package:flutter/services.dart';
import 'package:hive/hive.dart';
import "package:yaml/yaml.dart";
2020-09-21 11:50:26 +00:00
import 'package:cake_wallet/entities/node.dart';
import 'package:cake_wallet/entities/wallet_type.dart';
2020-01-04 19:31:52 +00:00
Future<List<Node>> loadDefaultNodes() async {
2020-01-08 12:26:34 +00:00
final nodesRaw = await rootBundle.loadString('assets/node_list.yml');
final nodes = loadYaml(nodesRaw) as YamlList;
return nodes.map((dynamic raw) {
if (raw is Map) {
2020-08-27 16:54:34 +00:00
final node = Node.fromMap(raw);
node?.type = WalletType.monero;
return node;
}
return null;
}).toList();
2020-01-04 19:31:52 +00:00
}
2020-07-06 20:09:03 +00:00
Future<List<Node>> loadElectrumServerList() async {
final serverListRaw =
await rootBundle.loadString('assets/electrum_server_list.yml');
final serverList = loadYaml(serverListRaw) as YamlList;
return serverList.map((dynamic raw) {
if (raw is Map) {
final node = Node.fromMap(raw);
node?.type = WalletType.bitcoin;
return node;
}
return null;
}).toList();
}
2020-01-04 19:31:52 +00:00
Future resetToDefault(Box<Node> nodeSource) async {
2020-07-06 20:09:03 +00:00
final moneroNodes = await loadDefaultNodes();
final bitcoinElectrumServerList = await loadElectrumServerList();
final nodes = moneroNodes + bitcoinElectrumServerList;
2020-01-04 19:31:52 +00:00
2020-01-08 12:26:34 +00:00
await nodeSource.clear();
await nodeSource.addAll(nodes);
2020-01-08 12:26:34 +00:00
}