From f9ab429a5873bc5e06bfa37536d26562d60a5028 Mon Sep 17 00:00:00 2001 From: Kubudak90 Date: Tue, 7 Apr 2026 07:23:40 +0300 Subject: [PATCH] fix(quickstart): enable batching in mass-payout.js The sendMassPayout function was awaiting each transfer inside the for-await loop, which prevented the SDK from batching transfers efficiently. This caused sequential processing instead of parallel. Changes: - Collect all transfers in an array first - Wait for all transfers to complete after queuing - Improves performance when processing multiple payouts Fixes #416 --- quickstart-template/mass-payout.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/quickstart-template/mass-payout.js b/quickstart-template/mass-payout.js index 7131b0ab..7c661484 100644 --- a/quickstart-template/mass-payout.js +++ b/quickstart-template/mass-payout.js @@ -56,10 +56,13 @@ async function createAndFundSendingWallet() { // Read from CSV file and send mass payout. async function sendMassPayout(sendingWallet) { - // Define amount to send. + // Define a variable for the amount and assetId to transfer. const transferAmount = 0.000002; const assetId = Coinbase.assets.Eth; + // Array to store pending transfers for batch processing + const pendingTransfers = []; + try { const parser = fs .createReadStream("./wallet-array.csv") @@ -76,14 +79,26 @@ async function sendMassPayout(sendingWallet) { destination: address, }); - await transfer.wait(); - - console.log(`Transfer to ${address} successful`); + // Store transfer for later batch processing instead of waiting immediately + pendingTransfers.push({ address, transfer }); + console.log(`Transfer to ${address} queued`); } catch (error) { - console.error(`Error transferring to ${address}: `, error); + console.error(`Error creating transfer to ${address}: `, error); } } } + + // Wait for all transfers to complete in parallel for better performance + console.log(`\nWaiting for ${pendingTransfers.length} transfers to complete...`); + + for (const { address, transfer } of pendingTransfers) { + try { + await transfer.wait(); + console.log(`Transfer to ${address} completed successfully`); + } catch (error) { + console.error(`Transfer to ${address} failed: `, error); + } + } } catch (error) { console.error(`Error processing CSV file: `, error); }