getAllSubaddresses function

List<SubaddressRow> getAllSubaddresses()

Implementation

List<SubaddressRow> getAllSubaddresses() {
  final errorBoxPointer1 = monero_flutter.buildErrorBoxPointer();

  final size = monero_flutter.bindings.subaddress_size(errorBoxPointer1);

  final errorInfo1 = monero_flutter.extractErrorInfo(errorBoxPointer1);

  if (0 != errorInfo1.code) {
    throw Exception(errorInfo1.getErrorMessage());
  }

  final errorBoxPointer2 = monero_flutter.buildErrorBoxPointer();

  final subaddressAddressesPointer = monero_flutter.bindings.subaddress_get_all(
      errorBoxPointer2);

  final errorInfo2 = monero_flutter.extractErrorInfo(errorBoxPointer2);

  if (0 != errorInfo2.code) {
    throw Exception(errorInfo2.getErrorMessage());
  }

  final subaddressAddresses = subaddressAddressesPointer.asTypedList(size);

  final result = subaddressAddresses
      .map((addr) => Pointer<SubaddressRow>.fromAddress(addr).ref)
      .toList();

  monero_flutter.bindings.free_block_of_subaddresses(subaddressAddressesPointer, size);

  return result;
}