decode method

List decode(
  1. List<Uint8List> topics,
  2. Uint8List data
)

Implementation

List<dynamic> decode(List<Uint8List> topics, Uint8List data) {
  final results = <dynamic>[];
  var topicIdx = anonymous ? 0 : 1;
  var dataOffset = 0;

  for (var i = 0; i < inputs.length; i++) {
    if (indexed[i]) {
      if (topicIdx < topics.length) {
        if (inputs[i].isDynamic) {
          // Indexed dynamic types are stored as keccak256 hashes.
          results.add(topics[topicIdx]);
        } else {
          final (val, _) = inputs[i].decode(topics[topicIdx], 0);
          results.add(val);
        }
        topicIdx++;
      } else {
        results.add(null);
      }
    } else {
      final (val, consumed) = inputs[i].decode(data, dataOffset);
      results.add(val);
      dataOffset += consumed;
    }
  }
  return results;
}