feat: implement getTransactions (#23633)
implement getTransactions which retrieves multiple transaction responses in a single RPC call Co-authored-by: obiwan <you@example.com>
This commit is contained in:
parent
895f76a93c
commit
0b93de9bd5
|
@ -3404,6 +3404,34 @@ export class Connection {
|
|||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch transaction details for a batch of confirmed transactions.
|
||||
* Similar to {@link getParsedTransactions} but returns a {@link TransactionResponse}.
|
||||
*/
|
||||
async getTransactions(
|
||||
signatures: TransactionSignature[],
|
||||
commitment?: Finality,
|
||||
): Promise<(TransactionResponse | null)[]> {
|
||||
const batch = signatures.map(signature => {
|
||||
const args = this._buildArgsAtLeastConfirmed([signature], commitment);
|
||||
return {
|
||||
methodName: 'getTransaction',
|
||||
args,
|
||||
};
|
||||
});
|
||||
|
||||
const unsafeRes = await this._rpcBatchRequest(batch);
|
||||
const res = unsafeRes.map((unsafeRes: any) => {
|
||||
const res = create(unsafeRes, GetTransactionRpcResult);
|
||||
if ('error' in res) {
|
||||
throw new Error('failed to get transactions: ' + res.error.message);
|
||||
}
|
||||
return res.result;
|
||||
});
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch a list of Transactions and transaction statuses from the cluster
|
||||
* for a confirmed block.
|
||||
|
|
Loading…
Reference in New Issue