unpackCandleVectors function

Future<List<Map<String, dynamic>>> unpackCandleVectors({
  1. required List<List<num>> vectors,
  2. required String assetType,
  3. required double blindScale,
})

Implementation

Future<List<Map<String, dynamic>>> unpackCandleVectors({
  required List<List<num>> vectors,
  required String assetType,
  required double blindScale,
}) async {
  final List<Map<String, dynamic>> unpacked = [];

  for (final vector in vectors) {
    if (vector.length != 6) {
      continue; // segurança: formato esperado [timestamp, o, c, l, h, id]
    }

    final timestamp = vector[0].toInt();
    final blindOHLC = vector.sublist(1, 5).cast<double>();
    final decodedOHLCBlind = await revertBlindScale(blindOHLC, blindScale);
    final scale = await getBlindScale(assetType);
    final decodedOHLC = decodedOHLCBlind.map((v) => v / scale).toList();

    unpacked.add({
      'timestamp': timestamp,
      'open': decodedOHLC[0],
      'close': decodedOHLC[1],
      'low': decodedOHLC[2],
      'high': decodedOHLC[3],
      'fbblNumber': vector[5].toInt(),
    });
  }

  return unpacked;
}