diff --git a/src/methods/get-transaction.ts b/src/methods/get-transaction.ts index becc94d..a9cd9d2 100644 --- a/src/methods/get-transaction.ts +++ b/src/methods/get-transaction.ts @@ -1,11 +1,9 @@ import { prepareMessage } from '../utils/message.js'; -import { blockfrostAPI } from '../utils/blockfrost-api.js'; -import { transformTransactionData } from '../utils/transaction.js'; +import { fetchTransactionData } from '../utils/transaction.js'; import { MessageId } from '../types/message.js'; export default async (id: MessageId, clientId: string, txId: string): Promise => { - const tx = await blockfrostAPI.txs(txId); - const data = await transformTransactionData(tx); + const data = await fetchTransactionData(txId); const message = prepareMessage({ id, clientId, data }); return message; diff --git a/src/utils/transaction.ts b/src/utils/transaction.ts index 65dc9f9..80d4108 100644 --- a/src/utils/transaction.ts +++ b/src/utils/transaction.ts @@ -18,9 +18,8 @@ export const sortTransactionsCmp = < const fetchTxWithUtxo = async (txHash: string, address: string) => { try { - const tx = await blockfrostAPI.txs(txHash); const txUtxo = await blockfrostAPI.txsUtxos(txHash); - const txData = await transformTransactionData(tx); + const txData = await fetchTransactionData(txHash); const txUtxos = await transformTransactionUtxo(txUtxo); return { txData, txUtxos, address, txHash }; @@ -49,7 +48,7 @@ export const txIdsToTransactions = async ( for (const item of txIdsPerAddress) { for (const txId of item.txIds) { - promises.push(limiter(() => fetchTxWithUtxo(txId, item.address))); + promises.push(fetchTxWithUtxo(txId, item.address)); } } @@ -71,11 +70,7 @@ export interface GetTransactionsDetails { export const getTransactionsWithDetails = async ( txs: GetTransactionsDetails[], ): Promise[]> => { - const txsData = await Promise.all( - txs.map(({ txId }) => - limiter(() => blockfrostAPI.txs(txId).then(data => transformTransactionData(data))), - ), - ); + const txsData = await Promise.all(txs.map(({ txId }) => fetchTransactionData(txId))); const txsUtxo = await Promise.all( txs.map(({ txId }) => limiter(() => blockfrostAPI.txsUtxos(txId).then(data => transformTransactionUtxo(data))), @@ -112,6 +107,9 @@ export const transformTransactionData = async ( }; }; +export const fetchTransactionData = (txId: string) => + limiter(() => blockfrostAPI.txs(txId)).then(data => transformTransactionData(data)); + export const transformTransactionUtxo = async ( utxo: Responses['tx_content_utxo'], ): Promise => {