withdraw method

Future<WithdrawResponse> withdraw (
  1. WithdrawRequest request
)

Implementation

Future<WithdrawResponse> withdraw(WithdrawRequest request) async {
  Uri serverURI = Uri.parse(_transferServiceAddress + "/withdraw");

  _WithdrawRequestBuilder requestBuilder =
      new _WithdrawRequestBuilder(httpClient, serverURI);

  final Map<String, String> queryParams = {
    "asset_code": request.assetCode,
    "type": request.type,
    "dest": request.dest,
  };

  if (request.destExtra != null) {
    queryParams["dest_extra"] = request.destExtra;
  }
  if (request.account != null) {
    queryParams["account"] = request.account;
  }
  if (request.memo != null) {
    queryParams["memo"] = request.memo;
  }
  if (request.memoType != null) {
    queryParams["memo_type"] = request.memoType;
  }
  if (request.walletName != null) {
    queryParams["wallet_name"] = request.walletName;
  }
  if (request.walletUrl != null) {
    queryParams["wallet_url"] = request.walletUrl;
  }
  if (request.lang != null) {
    queryParams["lang"] = request.lang;
  }
  if (request.onChangeCallback != null) {
    queryParams["on_change_callback"] = request.onChangeCallback;
  }
  if (request.amount != null) {
    queryParams["amount"] = request.amount;
  }
  if (request.countryCode != null) {
    queryParams["country_code"] = request.countryCode;
  }

  WithdrawResponse response;
  try {
    response = await requestBuilder
        .forQueryParameters(queryParams)
        .execute(request.jwt);
  } on ErrorResponse catch (e) {
    if (e.code == 403) {
      _handleForbiddenResponse(e);
    }
    throw e;
  }
  return response;
}