Skip to content
Snippets Groups Projects
parsingGVA.dart 1.67 KiB
Newer Older
import 'dart:math';
poka's avatar
poka committed
import 'package:intl/intl.dart';
poka's avatar
poka committed

poka's avatar
poka committed
num removeDecimalZero(double n) {
  String result = n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 1);
  return num.parse(result);
}

poka's avatar
poka committed
List parseHistory(txs) {
  var transBC = [];
  int i = 0;

  final currentBase = 0;
  double currentUD = 10.54;

  for (final trans in txs) {
    var direction = trans['direction'];
    final transaction = trans['node'];
    var output = transaction['outputs'][0];

    transBC.add(i);
    transBC[i] = [];
    final dateBrut =
        DateTime.fromMillisecondsSinceEpoch(transaction['writtenTime'] * 1000);
poka's avatar
poka committed
    final DateFormat formatter = DateFormat('dd-MM-yy\nHH:mm');
poka's avatar
poka committed
    final date = formatter.format(dateBrut);
    transBC[i].add(transaction['writtenTime']);
    transBC[i].add(date);
    print(
        "DEBUG date et comment: ${date.toString()} -- ${transaction['comment'].toString()}");
poka's avatar
poka committed
    int amountBrut = int.parse(output.split(':')[0]);
poka's avatar
poka committed
    final base = int.parse(output.split(':')[1]);
poka's avatar
poka committed
    final int applyBase = base - currentBase;
    final num amount = removeDecimalZero(amountBrut * pow(10, applyBase) / 100);
    num amountUD = amount / currentUD;
poka's avatar
poka committed
    if (direction == "RECEIVED") {
      transBC[i].add(transaction['issuers'][0]);
poka's avatar
poka committed
      transBC[i].add(amount.toString());
poka's avatar
poka committed
      transBC[i].add(amountUD.toStringAsFixed(2));
    } else if (direction == "SENT") {
      final outPubkey = output.split("SIG(")[1].replaceAll(')', '');
      transBC[i].add(outPubkey);
poka's avatar
poka committed
      transBC[i].add(amount.toString());
poka's avatar
poka committed
      transBC[i].add(amountUD.toStringAsFixed(2));
    }
    transBC[i].add(transaction['comment']);

    i++;
  }

  // transBC.sort((b, a) => Comparable.compare(a[0], b[0]));
poka's avatar
poka committed
  return transBC;
}