
Transaction Simulator
https://github.com/jarrodwatts/transaction-simulator- Category
- Crypto
- Rank
- No. 2201Tools index
Previous survey · No. 2189 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- jarrodwatts
- GitHub
- 1 stars
- Date
About
Visualize transaction latency on Abstract broken down by every RPC call.
What it does
It sends a zero-value test transaction with a fresh private key, then records the wallet client’s network requests from submission through confirmation. Results stream into a waterfall with per-request timing and total elapsed time. Switches let you compare normal behavior against cached transaction inputs and synchronous confirmation.
Why it's ranked here
This is a focused, credible experiment for understanding where transaction time goes. Its strongest feature is direct comparison: nonce, gas, chain ID, and confirmation strategies can be changed independently. The narrow Abstract Testnet setup makes the conclusions easy to interpret, but less transferable to other chains or production workloads.
What's good
The transport wrapper records both successful and failed request durations, while start notifications support live progress. Pre-fetch controls isolate avoidable network round trips instead of merely hiding their cost. Sync mode demonstrates a materially different confirmation path, and the native paymaster allows zero-value trials without funding each generated account.
Tradeoffs
The simulator covers one test network, one zero-value transfer pattern, and a newly generated account per run. Timing uses wall-clock milliseconds around client requests, so it does not explain server processing, network phases, or payload costs. Logged records contain method names and durations, but no request parameters, response details, or categorized failure data.
How to use it well
Use it when tuning an Abstract wallet flow or teaching how client abstractions expand into network traffic. Run controlled comparisons with one switch changed at a time, then inspect which calls disappear and how confirmation changes. It does not replace production tracing, multi-chain benchmarking, load testing, or a general transaction explorer.
Technical notes+
lib/instrumented-transport.ts wraps viem’s HTTP Transport, emits onRPCStart, and records method, startTime, endTime, and duration for success and failure. Its chain-ID cache returns a local hexadecimal value without logging an RPC call. lib/benchmark-clients.ts creates Abstract Testnet wallet and public clients with zkSync extensions. lib/benchmark-runner.ts builds the zero-value paymaster transaction, chooses sendRawTransactionSync or receipt polling, and returns success or error results. app/page.tsx mounts the benchmark UI. package.json defines Next.js development, build, start, and ESLint scripts.
Observed
- Primary language
- TypeScript
- Interface
- Web application with an interactive benchmark UI
- Platform
- Abstract Testnet RPC with its native paymaster
- Packaging and install
- Private pnpm-based Next.js application; install dependencies with pnpm and run the development script
- Core stack
- Next.js, React, viem, Tailwind CSS, and Radix UI components
- Testing structure
- No test script or test files appear in the supplied repository text
Read from README.md, package.json, lib/utils.ts, lib/format-utils.ts, lib/benchmark-runner.ts, lib/benchmark-clients.ts, lib/instrumented-transport.ts, next.config.ts, eslint.config.mjs, postcss.config.mjs, app/page.tsx, app/layout.tsx, types/benchmark.ts, types/client-types.ts, constants/mock-data.ts.
What it can do
Simulate blockchain transactions
Transaction parameters → Simulated transaction execution
Visualize transaction latency
Transaction data → Latency visualization charts
Break down RPC call performance
RPC call data → Individual RPC call metrics
Monitor Abstract network performance
Network transaction data → Performance analytics dashboard
Analyze transaction bottlenecks
Transaction execution data → Bottleneck identification report
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.