Forked from
vjrj / ginkgo
1040 commits behind the upstream repository.
g1_helper.dart 5.08 KiB
import 'dart:convert';
import 'dart:math';
import 'dart:typed_data';
import 'package:durt/durt.dart';
import 'package:encrypt/encrypt.dart' as encrypt;
import 'package:encrypt/encrypt.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import '../data/models/contact.dart';
import '../data/models/payment_state.dart';
Random createRandom() {
try {
return Random.secure();
} catch (e) {
return Random();
}
}
Uint8List generateUintSeed() {
final Random random = createRandom();
return Uint8List.fromList(List<int>.generate(32, (_) => random.nextInt(256)));
}
String seedToString(Uint8List seed) {
final Uint8List seedsBytes = Uint8List.fromList(seed);
final String encoded = json.encode(seedsBytes.toList());
return encoded;
}
CesiumWallet generateCesiumWallet(Uint8List seed) {
return CesiumWallet.fromSeed(seed);
}
Uint8List seedFromString(String sString) {
final List<dynamic> list = json.decode(sString) as List<dynamic>;
final Uint8List bytes =
Uint8List.fromList(list.map((dynamic e) => e as int).toList());
return bytes;
}
String generateSalt(int length) {
final Random random = createRandom();
const String charset =
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
return List<String>.generate(
length, (int index) => charset[random.nextInt(charset.length)]).join();
}
String? parseHost(String endpointUnParsed) {
endpointUnParsed = endpointUnParsed.replaceFirst('GVA S', 'GVA_S');
try {
final List<String> parts = endpointUnParsed.split(' ');
// FIXME (vjrj): figure out if exists a way to detect http or https
const String protocol = 'https';
final String lastPart = parts.removeLast();
String path =
RegExp(r'^\/[a-zA-Z0-9\-\/]+$').hasMatch(lastPart) ? lastPart : '';
final String nextToLast = parts[parts.length - 1];
/* print(lastPart);
print(path);
print(nextToLast); */
String port = path == ''
? (RegExp(r'^[0-9]+$').hasMatch(lastPart) ? lastPart : '443')
: RegExp(r'^[0-9]+$').hasMatch(nextToLast)
? nextToLast
: '443';
final List<String> hostSplited = parts[1].split('/');