getMultipleTransactions method

Future<List<TransactionDetails>> getMultipleTransactions(
  1. List<TransactionSignatureInformation> signatures, {
  2. Commitment? commitment,
  3. Encoding? encoding,
  4. num? maxSupportedTransactionVersion = 0,
})

Get multiple transactions in 1 call.

Gets one transaction for each signature in the signatures list.

The encoding and commitment parameters are "passed as is" to the internal call to RpcClient.getTransaction()

Implementation

Future<List<TransactionDetails>> getMultipleTransactions(
  List<TransactionSignatureInformation> signatures, {
  Commitment? commitment,
  Encoding? encoding,
  // ignore: avoid-nullable-parameters-with-default-values, null has a meaning here
  num? maxSupportedTransactionVersion = 0,
}) async {
  final response = await _jsonRpcClient.bulkRequest(
    'getTransaction',
    signatures
        .map(
          (s) => <dynamic>[
            s.signature,
            GetTransactionConfig(
              encoding: encoding,
              commitment: commitment,
              maxSupportedTransactionVersion: maxSupportedTransactionVersion,
            ).toJson(),
          ],
        )
        .toList(growable: false),
  );
  final Iterable<dynamic> transactions = response.map<dynamic>(getResult);

  return transactions
      .map(
        (dynamic t) => TransactionDetails.fromJson(t as Map<String, dynamic>),
      )
      .toList(growable: false);
}