split method

List<MsgGetData> split({
  1. int maxItems = 500,
})

Split into smaller getdata messages if too large

Implementation

List<MsgGetData> split({int maxItems = 500}) {
  if (invList.length <= maxItems) {
    return [this];
  }

  final result = <MsgGetData>[];
  for (int i = 0; i < invList.length; i += maxItems) {
    final end = (i + maxItems < invList.length) ? i + maxItems : invList.length;
    final chunk = invList.sublist(i, end);
    result.add(MsgGetData(invList: chunk));
  }

  return result;
}