@startale/simulate-entrypoint
v1.0.0
Published
A script for simulating calls to the entrypoint contract on Soneium using viem and Tenderly.
Downloads
25
Keywords
Readme
@startale/simulate-entrypoint
A Node.js script for simulating calls to the Entrypoint smart contract (specifically eth_sendUserOperation) on the Soneium network using the Tenderly API and viem.
Features
- Simulate calls to the entrypoint contract on Soneium.
- Automatically determine the block number based on a timestamp.
- Output simulation results to the console or a file.
- Support for both mainnet and testnet environments.
Installation
Global Installation
To install globally:
npm install -g @startale/simulate-entrypointRun with npx
To run directly with npx:
npx @startale/simulate-entrypointConfiguration
Create a .config.json file in the working directory (or specify a custom path using the -c option). The file should have the following structure:
{
"entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
"user": "<your_tenderly_username>",
"project": "<your_tenderly_project_name>",
"apiKey": "<your_tenderly_api_key>"
}This configuration is required for the script to interact with the Tenderly API.
Usage
Command-Line Options
Usage: simulate-entrypoint [options]
Options:
-c, --config Path to the config file (default: ".config.json")
-r, --request Path to the JSON RPC request file or direct JSON input (required)
-t, --timestamp Block timestamp for the simulation (required)
-m, --testnet Use Minato testnet (default: false)
-o, --output Output to file, optionally pass a file name (default: outputs to console)
--help Show helpExamples
Simulate a Transaction
simulate-entrypoint -r request.json -t 2025-01-01T12:00:00ZSpecify a Custom Config File
simulate-entrypoint -c custom_config.json -r request.json -t 2025-01-01T12:00:00ZOutput Results to a File
simulate-entrypoint -r request.json -t 2025-01-01T12:00:00Z -oThis will generate a file named simulation_output_<timestamp>.json.
Specify a Custom Output File Name
simulate-entrypoint -r request.json -t 2025-01-01T12:00:00Z -o result.jsonJSON RPC Request Format
The request format is made identical to the RPC log format so it can easily be copied over.
{
"jsonrpc": "2.0",
"method": "eth_sendUserOperation",
"params": [
{
"sender": "0x8D039844f95F7e1f182E222F9AC528626510FbF3",
"nonce": "0x1",
"callData": "0xb61d27f6...",
"callGasLimit": "0x3bb8",
"maxFeePerGas": "0xb2d05e00",
"maxPriorityFeePerGas": "0x3b9aca00",
"preVerificationGas": "0xb8bc",
"signature": "0x1996cc81..."
},
"0xF0B8FDDC..."
]
}License
MIT © Startale Group
