measureSeedRPCServer static method

Future<List<String>?> measureSeedRPCServer(
  1. List<String> seedRPCServerAddr,
  2. int? timeout
)

measureSeedRPCServer measures the latency to seed rpc node list, only select the ones in persist finished state, and sort them by latency (from low to high). If none of the given seed rpc node is accessable or in persist finished state, returned string array will contain zero elements. Timeout is in millisecond.

Implementation

static Future<List<String>?> measureSeedRPCServer(
    List<String> seedRPCServerAddr, int? timeout) async {
  try {
    final Map data =
        await _methodChannel.invokeMethod('measureSeedRPCServer', {
      'seedRpc': seedRPCServerAddr.isNotEmpty == true
          ? seedRPCServerAddr
          : [DEFAULT_SEED_RPC_SERVER],
      'timeout': timeout,
    });
    List<String> result = [];
    (data['seedRPCServerAddrList'] as List?)?.forEach((element) {
      if (element is String && element.isNotEmpty) {
        result.add(element);
      }
    });
    return result;
  } catch (e) {
    rethrow;
  }
}