Skip to content

Comments

feat: batch split calls via Caller contract#19

Merged
efstajas merged 2 commits intomainfrom
batch-splits-via-caller
Jan 8, 2026
Merged

feat: batch split calls via Caller contract#19
efstajas merged 2 commits intomainfrom
batch-splits-via-caller

Conversation

@jtourkos
Copy link
Contributor

Resolves: #18

@jtourkos jtourkos requested a review from Copilot December 29, 2025 16:38
@railway-app
Copy link

railway-app bot commented Dec 29, 2025

🚅 Environment sprinkler-pr-19 in Drips App has no services deployed.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements batched split call execution via a Caller contract to parallelize blockchain operations and improve processing efficiency. The implementation introduces pre-validation of accounts, batched transaction execution, and fallback retry logic for failed batches.

Key changes include:

  • New batching system that pre-validates accounts and executes operations in configurable batch sizes (15 accounts per batch)
  • Parallel validation with concurrency control (5 concurrent RPC reads) to optimize network calls
  • Hybrid error handling with individual retry fallback when batch transactions fail

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
src/types.ts Adds Caller contract address to Network type and introduces assertOxString validation function for address format checking
src/getNetwork.ts Configures Caller contract addresses for all supported networks (mainnet, sepolia, filecoin, metis, optimism, and local testnet)
src/contracts/caller-client.ts Implements client for interacting with the Caller contract's callBatched function to execute multiple calls in a single transaction
src/contracts/caller-abi.ts Defines the ABI for the Caller contract's callBatched function
src/batchBuilder.ts Provides utilities to build receive and split call data, plus a chunk utility for splitting arrays into batches
src/index.ts Refactors processing logic to use batched execution: adds pre-validation, batch execution, retry logic, and integrates with existing drip list, project, and ORCID account processing flows
.gitignore Adds .claude/ directory to ignore list

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@efstajas efstajas merged commit 057d2f8 into main Jan 8, 2026
2 checks passed
@efstajas efstajas deleted the batch-splits-via-caller branch January 8, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Parallelize requests

2 participants