Overview
Starknet testing in Chainbench includes:- Wallet Operations: Profile based on typical wallet usage patterns
- Contract Interactions: Testing contract calls and queries
- Transaction Simulation: Fee estimation and transaction simulation
- Account Operations: Balance, nonce, and class queries
- Partial Support: Core RPC methods with ongoing expansion
Starknet support in Chainbench is currently partial and focuses on the most commonly used RPC methods. Additional methods will be added in future releases.
Available Profiles
starknet.wallet
The wallet profile simulates typical Starknet wallet usage based on real-world patterns.constant_pacing(1))
Supported RPC Methods
- Contract Methods
- Transaction Methods
- Account Methods
- Network Methods
starknet_call- Execute contract function call (read-only)starknet_getClassAt- Get contract class at addressstarknet_getClassHashAt- Get class hash for contract address
Example Commands
Wallet Profile Testing
Single Method Testing
Starknet-Specific Features
RPC Version Support
Some methods use specific RPC versions:Contract Call Testing
Thestarknet_call method tests contract function execution:
Transaction Simulation
Test transaction simulation and fee estimation:Test Data Generation
Chainbench automatically fetches Starknet-specific data:- Contract Addresses: For class and call operations
- Transaction Hashes: For receipt queries
- Account Addresses: For nonce and balance operations
- Class Hashes: For contract verification
Network Testing
Starknet Mainnet
Starknet Sepolia (Testnet)
Custom Starknet Node
Advanced Usage
Custom Block Range
Reference Node Testing
Test Data Sizes
Performance Considerations
Recommended Settings
Full Nodes:- Users: 30-100 concurrent users
- Spawn Rate: 5-20 users/second
- Workers: 2-4
- Test Data Size: S or M
- Users: 50-150 concurrent users
- Spawn Rate: 10-30 users/second
- Workers: 2-4
- Test Data Size: M or L
- Users: 10-30 concurrent users (estimation is resource-intensive)
- Spawn Rate: 2-10 users/second
- Workers: 1-2
- Test Data Size: S
Method Performance Notes
Heavy Methods:
starknet_call, starknet_simulateTransaction, and starknet_estimateFee are more resource-intensive than simple queries like starknet_chainId.Class Queries:
starknet_getClassAt and starknet_getClassHashAt may return large responses depending on contract size.Usage Patterns
The wallet profile reflects real-world Starknet usage: Most Common Operations (54%):- Contract calls for reading state
- Querying token balances
- Reading NFT metadata
- Chain ID verification
- Network validation
- Checking contract classes
- Validating deployments
- Receipt queries
- Fee estimation
- Transaction simulation
Limitations
Starknet support is currently partial. The following features are not yet implemented:
- Block queries (
starknet_getBlockWithTxHashes,starknet_getBlockWithTxs) - State queries (
starknet_getStateUpdate,starknet_getStorageAt) - Event filtering (
starknet_getEvents) - Transaction submission (
starknet_addInvokeTransaction, etc.) - Trace methods (
starknet_traceTransaction,starknet_traceBlockTransactions)