getContractReadDataHex method

Future<String> getContractReadDataHex(
  1. String contractAddress,
  2. String key
)

Implementation

Future<String> getContractReadDataHex(
    String contractAddress, String key) async {
  ContractReadDataRequest contractReadDataRequest;
  ContractReadDataHexResponse contractReadDataResponse;

  Map<String, dynamic> mapParams;

  Completer<String> _completer = new Completer<String>();

  mapParams = {
    'method': ContractReadDataRequest.METHOD_NAME,
    'params': [contractAddress, key, "hex"],
    'id': 101,
    'key': keyApp
  };

  try {
    if (this.nodeType == NORMAL_VPS_NODE) {
      SSHClientStatus sshClientStatus;
      sshClientStatus = await VpsUtil().connectVps(this.apiUrl, keyApp);
      if (sshClientStatus.sshClientStatus) {
        sshClient = sshClientStatus.sshClient;
      }
      var response = await ssh.HttpClientImpl(
          clientFactory: () =>
              ssh.SSHTunneledBaseClient(sshClientStatus.sshClient)).request(
          this.apiUrl,
          method: 'POST',
          data: jsonEncode(mapParams),
          headers: requestHeaders);
      if (response.status == 200) {
        contractReadDataResponse =
            contractReadDataHexResponseFromJson(response.text);
      }
    } else {
      contractReadDataRequest = ContractReadDataRequest.fromJson(mapParams);
      body = json.encode(contractReadDataRequest.toJson());
      responseHttp = await http.post(Uri.parse(this.apiUrl),
          body: body, headers: requestHeaders);
      if (responseHttp.statusCode == 200) {
        contractReadDataResponse =
            contractReadDataHexResponseFromJson(responseHttp.body);
      }
    }
  } catch (e) {
    logger.e(e.toString());
  }

  if (contractReadDataResponse != null) {
    _completer.complete(contractReadDataResponse.result);
  } else {
    _completer.complete("");
  }

  return _completer.future;
}