getTransaction method

  1. @override
Future<TransactionResponse> getTransaction(
  1. String digest, {
  2. TransactionIncludeOptions? include,
})
override

Implementation

@override
Future<TransactionResponse> getTransaction(
  String digest, {
  TransactionIncludeOptions? include,
}) async {
  final readMask = _transactionReadMask(include);

  try {
    final response = await _client.ledgerService.getTransaction(
      GetTransactionRequest(digest: digest, readMask: readMask),
    );

    if (!response.hasTransaction()) {
      throw TransactionError(TransactionErrorReason.notFound, digest);
    }

    return _parseTransaction(response.transaction, include);
  } on GrpcError catch (error) {
    if (error.code == StatusCode.notFound) {
      throw TransactionError(
        TransactionErrorReason.notFound,
        digest,
        cause: error,
      );
    }
    rethrow;
  }
}