getTransactionSummary function

Future<TransactionSummary?> getTransactionSummary({
  1. String? productType,
  2. String? contractExpiryType,
  3. String? productVenue,
  4. Client? client,
  5. required Credential credential,
  6. bool isSandbox = false,
})

Gets the transaction summary.

GET /api/v3/brokerage/transaction_summary https://docs.cdp.coinbase.com/api-reference/advanced-trade-api/rest-api/fees/get-transaction-summary

productType - The type of product to get the summary for. contractExpiryType - The contract expiry type. productVenue - The product venue. credential - The user's API credentials. isSandbox - Whether to use the sandbox environment.

Returns a TransactionSummary object.

Implementation

Future<TransactionSummary?> getTransactionSummary(
    {String? productType,
    String? contractExpiryType,
    String? productVenue,
    http.Client? client,
    required Credential credential,
    bool isSandbox = false}) async {
  Map<String, dynamic> queryParameters = {};
  if (productType != null) {
    queryParameters.addAll({'product_type': productType});
  }
  if (contractExpiryType != null) {
    queryParameters.addAll({'contract_expiry_type': contractExpiryType});
  }
  if (productVenue != null) {
    queryParameters.addAll({'product_venue': productVenue});
  }

  http.Response response = await getAuthorized('/transaction_summary',
      queryParameters: queryParameters,
      client: client,
      credential: credential,
      isSandbox: isSandbox);

  if (response.statusCode == 200) {
    var jsonResponse = jsonDecode(response.body);
    return TransactionSummary.fromCBJson(jsonResponse);
  } else {
    throw CoinbaseException('Failed to get transaction summary',
        response.statusCode, response.body);
  }
}