- Enforces Separation of Duties: validator/admin/pause addresses must be distinct
- Validates chainId does not collide with mainnet/testnet IDs
- Requires minimum 4 validators for IBFT 2.0 safety
- Alloc map distinguishes roles with different balances
- extraData placeholder to be injected by key-ceremony tooling
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- Remove devnet/validator-keys/*/key and nodes-summary.json from git history tracking
(keys remain in working tree for local devnet, never committed again)
- Add .pre-commit-secret-scan.sh to block 64+ hex strings from being committed
- Update .gitignore to ignore nodes-summary.json and all devnet validator key files
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- Updated foundry.toml with correct libs path and OpenZeppelin remappings.
- Captured gas snapshot for Counter::test_Increment (30385 gas).
- Created scripts/load_test.py (stdlib-only, 500 TPS target against any JSON-RPC).
- Created scripts/run_smoke_tests.sh to orchestrate mock RPC + load test + Foundry build.
- Installed forge-std and openzeppelin-contracts dependencies.
Co-Authored-By: Paperclip <noreply@paperclip.ing>