-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Problem
Developers using the devkit avs start command often need to visualize and interact with their local blockchain's state. Currently, the project lacks a user-friendly interface for exploring transactions, blocks, accounts, and contracts beyond logs. This makes debugging and demos more difficult.
Solution
Integrate a local block explorer (like Otterscan) that connects to the Anvil node. This would provide a web-based UI for querying and displaying blockchain data.
Motivation
This change improves developer experience by:
- Allowing developers to visually inspect transactions, blocks, token balances, and contract events without relying solely on logs
- Enabling easier debugging of smart contracts during development
- Providing a user-friendly interface for demonstrations and external consumption
Implementation
Update the project's docker-compose.yaml to include a service for running Otterscan. Since Anvil runs on http://localhost:8545 by default, we can configure Otterscan to connect to this node.
Steps:
- Add a new service in
docker-compose.yamlfor the block explorer
Details
Example docker-compose.yaml modification:
services:
devkit-devnet:
image: ${FOUNDRY_IMAGE}
container_name: ${AVS_CONTAINER_NAME}
entrypoint: anvil
command: "--host 0.0.0.0 --fork-url ${FORK_RPC_URL} --fork-block-number ${FORK_BLOCK_NUMBER} ${ANVIL_ARGS}"
ports:
- "${DEVNET_PORT}:8545"
extra_hosts:
- "host.docker.internal:host-gateway"
devkit-explorer:
image: "otterscan/otterscan:v2.8.0"
ports:
- "5100:80"
environment:
ERIGON_URL: "http://devkit-devnet:8545"Additional Considerations
- Performance: Ensure this change doesn't significantly impact developer machine performance during local development.
Documentation
Update the README.md to explain how the new block explorer service can be accessed.
Expected Outcome
- Developers will be able to view and interact with their local network using a visual interface.
- Existing workflows remain unchanged unless explicitly modified by the user.
Bonus Points
- A sourcify instance coupled with the otterscan instance so that developer deployed contracts can be verified and interacted with.