Add integration tests, CI pipeline, and project roadmap#1
Closed
Add integration tests, CI pipeline, and project roadmap#1
Conversation
5-phase roadmap covering dataset validation, invariant enhancement, production hardening, multi-chain support, and research publication. https://claude.ai/code/session_011QpXPYzuppRtSHFqDKWtQt
- constants.py: add Permit2 permitBatch/permitSingle/permitAndTransferFrom selectors to PERMISSION_OP_SELECTORS so I2 correctly skips them - tests/conftest.py: shared gate_config fixture for offline tests - tests/fixtures/rpc_responses.py: JSON-RPC mock response builders (eth_call, receipt, Transfer/Approval/ApprovalForAll logs) - tests/test_integration.py: 10 end-to-end scenarios covering I1–I3, fail-open, and classifier correctness; runs fully offline via pytest-httpx mocking of httpx.AsyncClient - pyproject.toml / requirements.txt: add pytest-httpx>=0.30.0, ruff; add [tool.ruff] config (line-length=100, target-version=py39) - .github/workflows/ci.yml: GitHub Actions CI with test+mypy job and separate lint (ruff) job - README_CN.md: new 快速上手 section with CLI example output, 3-line Python API example, and updated project structure tree All 43 tests pass (33 existing + 10 new integration tests). https://claude.ai/code/session_011QpXPYzuppRtSHFqDKWtQt
…nd new tests - constants.py: add increaseAllowance/decreaseAllowance to PERMISSION_OP_SELECTORS; add 5 DEX swap selectors (1inch, Curve, Balancer, Paraswap, 0x) to ASSET_OP_SELECTORS - classifier.py: extend is_likely_swap() with new DEX selectors - config.py: add critical_call_depth_threshold(15), critical_delegate_call_threshold(10), dust_threshold_wei(1000), fail_open_on_timeout(True) to InvariantConfig - invariants.py: - I2: activate allowance_balance_multiplier relative-balance check - I3: dust filter for unexpected token outflows; doubled limit for composite ops (multicall) - I4: unconditional REJECT at critical thresholds regardless of enable_path_rejection - Engine: configurable reject-on-timeout via fail_open_on_timeout - tests: add 14 new unit tests and 2 integration tests covering all strengthened logic - config.example.json: document the 4 new invariant config parameters https://claude.ai/code/session_011QpXPYzuppRtSHFqDKWtQt
…thening - Document I2 relative balance check (allowance_balance_multiplier) and increaseAllowance/decreaseAllowance PERMISSION_OP classification fix - Document I3 dust filter (dust_threshold_wei) and composite-op doubled limit - Document I4 dual-threshold strategy with critical REJECT table - Document fail_open_on_timeout configurable behavior - Add new config parameters table with all 10 invariant settings - Update test count (57 cases) and test coverage table - Update project structure tree (ROADMAP.md, CI workflow, fixtures/) - Add Roadmap section linking to ROADMAP.md https://claude.ai/code/session_011QpXPYzuppRtSHFqDKWtQt
Fix CI type-check failures and lint errors
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR establishes a comprehensive testing and CI infrastructure for the ExecutionGate project, along with a detailed product roadmap. The changes enable offline integration testing, automated quality checks, and clear visibility into the project's evolution from MVP to v1.0.0.
Key Changes
Testing Infrastructure
tests/test_integration.py): 10 end-to-end test scenarios covering all four invariants (I1–I4), fail-open behavior, and classifier logic. Tests usepytest-httpxto mock RPC calls, making the suite fully offline and CI-safe.tests/fixtures/rpc_responses.py): Reusable builders for JSON-RPC 2.0 responses, event logs (Transfer, Approval, ApprovalForAll), and test addresses. Enables consistent mock data across tests.tests/conftest.py): Centralizedgate_configfixture providing default configuration for all tests.CI/CD Pipeline
.github/workflows/ci.yml): Automated testing and linting on all branches and PRs:Project Documentation
Configuration Updates
pytest-httpx,ruff) and tool configurationspytest-httpxfor mock HTTP testingSELECTOR_PERMIT2_PERMIT_BATCHandSELECTOR_PERMIT2_PERMIT_SINGLEselectors for Permit2 detectionNotable Implementation Details
Test coverage: 10 scenarios systematically validate each invariant:
Offline-first design: All RPC calls are mocked via
pytest-httpx, eliminating network dependencies and enabling reliable CI executionRoadmap structure: Organized by phases with clear priorities (P0/P1/P2), deliverables, and risk mitigation strategies. Establishes realistic timeline for production readiness and ecosystem integration.
https://claude.ai/code/session_011QpXPYzuppRtSHFqDKWtQt