-
Notifications
You must be signed in to change notification settings - Fork 220
v3.0.0: Web3.py v7 support, uv migration, code quality improvements #104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
kais92
wants to merge
12
commits into
flashbots:master
Choose a base branch
from
kais92:feature/web3-v7-support
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
oppastoppa31
approved these changes
Nov 22, 2025
Collaborator
|
Pushed latest updates to this branch: added simulation test coverage and refreshed dependency/lockfile updates. |
The gasPrice field was missing from the list of fields that get converted from bytes to int, causing inconsistent behavior for EIP-2930 access list transactions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The function was added but never used in the codebase. Removing to avoid dead code. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The timeout was hardcoded to 10 seconds. Users can now configure it via the request_timeout parameter (default remains 10 seconds). Also removes unused json import. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change deprecated [tool.poetry.dev-dependencies] to [tool.poetry.group.dev.dependencies] - Add pytest ^8.0.0 as explicit dev dependency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduce domain-specific exceptions for better error handling: - FlashbotsError: Base exception for all Flashbots errors - FlashbotsTransactionError: Transaction-related errors - InvalidTransactionError: Invalid/malformed transactions - TransactionSignatureError: Signature verification failures - BlockExtrapolationError: Block timestamp extrapolation errors - FlashbotsProviderError: Provider-related errors - FlashbotsRequestError: HTTP request failures Also adds explicit __all__ exports in package __init__.py. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace assert statements with explicit validation using custom exceptions - Replace lambda functions with list comprehensions for readability - Add return type hints to simulate() and extrapolate_timestamp() - Use sum() instead of reduce() for gas calculation - Remove unused 'reduce' import 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace generic exception catching with specific handlers: - requests.Timeout: Raised when request exceeds timeout - requests.ConnectionError: Raised on connection failures - requests.RequestException: Catch-all for other request errors All exceptions are wrapped in FlashbotsRequestError with context. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document new features and changes: - Custom exception hierarchy - Explicit __all__ exports - Assert replacements with domain exceptions - Lambda to list comprehension conversions - Provider error handling improvements - Return type hints additions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert pyproject.toml to PEP 621 format with hatchling backend - Use [dependency-groups] for dev dependencies - Replace poetry.lock with uv.lock - Update README with uv commands - Update linting instructions to use ruff 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.
Breaking Changes
.rawTransactionproperties to.raw_transaction(Web3.py v7 naming).wrap_make_request.FlashbotProvider:requests.post.eth_account._utils.Added
get_transaction_type()to detect legacy, access list, and EIP-1559 tx types._parse_signed_txfor legacy, EIP-2930 (type=1), and EIP-1559 (type=2) transactions.Fixed
int.chainIdfor legacy transactions signed under EIP-155.examples/simple.py) to use.raw_transactionand new middleware/provider APIs.