* hv
* Change build version
This commit is contained in:
mkyq
2022-03-30 17:57:04 +02:00
committed by GitHub
parent e7e419bc83
commit 01150ef2a7
213 changed files with 23972 additions and 672 deletions
+12 -1
View File
@@ -11,5 +11,16 @@ String calculateFiatAmount({double price, String cryptoAmount}) {
return '0.00';
}
return result > 0.01 ? result.toStringAsFixed(2) : '< 0.01';
var formatted = '';
final parts = result.toString().split('.');
if (parts.length >= 2) {
if (parts[1].length > 2) {
formatted = parts[0] + '.' + parts[1].substring(0, 2);
} else {
formatted = parts[0] + '.' + parts[1];
}
}
return result > 0.01 ? formatted : '< 0.01';
}
@@ -22,6 +22,7 @@ import 'package:encrypt/encrypt.dart' as encrypt;
const newCakeWalletMoneroUri = 'xmr-node.cakewallet.com:18081';
const cakeWalletBitcoinElectrumUri = 'electrum.cakewallet.com:50002';
const cakeWalletLitecoinElectrumUri = 'ltc-electrum.cakewallet.com:50002';
const havenDefaultNodeUri = 'vault.havenprotocol.org:443';
Future defaultSettingsMigration(
{@required int version,
@@ -120,6 +121,13 @@ Future defaultSettingsMigration(
await checkCurrentNodes(nodes, sharedPreferences);
break;
case 16:
await addHavenNodeList(nodes: nodes);
await changeHavenCurrentNodeToDefault(
sharedPreferences: sharedPreferences, nodes: nodes);
await checkCurrentNodes(nodes, sharedPreferences);
break;
default:
break;
}
@@ -182,6 +190,14 @@ Node getLitecoinDefaultElectrumServer({@required Box<Node> nodes}) {
orElse: () => null);
}
Node getHavenDefaultNode({@required Box<Node> nodes}) {
return nodes.values.firstWhere(
(Node node) => node.uriRaw == havenDefaultNodeUri,
orElse: () => null) ??
nodes.values.firstWhere((node) => node.type == WalletType.haven,
orElse: () => null);
}
Node getMoneroDefaultNode({@required Box<Node> nodes}) {
final timeZone = DateTime.now().timeZoneOffset.inHours;
var nodeUri = '';
@@ -217,6 +233,15 @@ Future<void> changeLitecoinCurrentElectrumServerToDefault(
await sharedPreferences.setInt('current_node_id_ltc', serverId);
}
Future<void> changeHavenCurrentNodeToDefault(
{@required SharedPreferences sharedPreferences,
@required Box<Node> nodes}) async {
final node = getHavenDefaultNode(nodes: nodes);
final nodeId = node?.key as int ?? 0;
await sharedPreferences.setInt(PreferencesKey.currentHavenNodeIdKey, nodeId);
}
Future<void> replaceDefaultNode(
{@required SharedPreferences sharedPreferences,
@required Box<Node> nodes}) async {
@@ -258,6 +283,11 @@ Future<void> addLitecoinElectrumServerList({@required Box<Node> nodes}) async {
await nodes.addAll(serverList);
}
Future<void> addHavenNodeList({@required Box<Node> nodes}) async {
final nodeList = await loadDefaultHavenNodes();
await nodes.addAll(nodeList);
}
Future<void> addAddressesForMoneroWallets(
Box<WalletInfo> walletInfoSource) async {
final moneroWalletsInfo =
@@ -347,6 +377,8 @@ Future<void> checkCurrentNodes(
sharedPreferences.getInt(PreferencesKey.currentBitcoinElectrumSererIdKey);
final currentLitecoinElectrumSeverId = sharedPreferences
.getInt(PreferencesKey.currentLitecoinElectrumSererIdKey);
final currentHavenNodeId = sharedPreferences
.getInt(PreferencesKey.currentHavenNodeIdKey);
final currentMoneroNode = nodeSource.values.firstWhere(
(node) => node.key == currentMoneroNodeId,
orElse: () => null);
@@ -356,6 +388,9 @@ Future<void> checkCurrentNodes(
final currentLitecoinElectrumServer = nodeSource.values.firstWhere(
(node) => node.key == currentLitecoinElectrumSeverId,
orElse: () => null);
final currentHavenNodeServer = nodeSource.values.firstWhere(
(node) => node.key == currentHavenNodeId,
orElse: () => null);
if (currentMoneroNode == null) {
final newCakeWalletNode =
@@ -382,6 +417,14 @@ Future<void> checkCurrentNodes(
PreferencesKey.currentLitecoinElectrumSererIdKey,
cakeWalletElectrum.key as int);
}
if (currentHavenNodeServer == null) {
final nodes = await loadDefaultHavenNodes();
final node = nodes.first;
await nodeSource.add(node);
await sharedPreferences.setInt(
PreferencesKey.currentHavenNodeIdKey, node.key as int);
}
}
Future<void> resetBitcoinElectrumServer(
+21 -1
View File
@@ -54,12 +54,32 @@ Future<List<Node>> loadLitecoinElectrumServerList() async {
}).toList();
}
Future<List<Node>> loadDefaultHavenNodes() async {
final nodesRaw = await rootBundle.loadString('assets/haven_node_list.yml');
final nodes = loadYaml(nodesRaw) as YamlList;
return nodes.map((dynamic raw) {
if (raw is Map) {
final node = Node.fromMap(raw);
node?.type = WalletType.haven;
return node;
}
return null;
}).toList();
}
Future resetToDefault(Box<Node> nodeSource) async {
final moneroNodes = await loadDefaultNodes();
final bitcoinElectrumServerList = await loadBitcoinElectrumServerList();
final litecoinElectrumServerList = await loadLitecoinElectrumServerList();
final havenNodes = await loadDefaultHavenNodes();
final nodes =
moneroNodes + bitcoinElectrumServerList + litecoinElectrumServerList;
moneroNodes +
bitcoinElectrumServerList +
litecoinElectrumServerList +
havenNodes;
await nodeSource.clear();
await nodeSource.addAll(nodes);
+1
View File
@@ -4,6 +4,7 @@ class PreferencesKey {
static const currentNodeIdKey = 'current_node_id';
static const currentBitcoinElectrumSererIdKey = 'current_node_id_btc';
static const currentLitecoinElectrumSererIdKey = 'current_node_id_ltc';
static const currentHavenNodeIdKey = 'current_node_id_xhv';
static const currentFiatCurrencyKey = 'current_fiat_currency';
static const currentTransactionPriorityKeyLegacy = 'current_fee_priority';
static const currentBalanceDisplayModeKey = 'current_balance_display_mode';
+21
View File
@@ -0,0 +1,21 @@
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:cw_core/monero_amount_format.dart';
import 'package:cw_haven/api/balance_list.dart';
Future<void> updateHavenRate(FiatConversionStore fiatConversionStore) async {
final rate = getRate();
final base = rate.firstWhere((row) => row.getAssetType() == 'XUSD', orElse: () => null);
rate.forEach((row) {
final cur = CryptoCurrency.fromString(row.getAssetType());
final baseRate = moneroAmountToDouble(amount: base.getRate());
final rowRate = moneroAmountToDouble(amount: row.getRate());
if (cur == CryptoCurrency.xusd) {
fiatConversionStore.prices[cur] = 1.0;
return;
}
fiatConversionStore.prices[cur] = baseRate / rowRate;
});
}