v3.0.0: Web3.py v7 support, uv migration, code quality improvements#104
Open
kais92 wants to merge 12 commits intoflashbots:masterfrom
Open
v3.0.0: Web3.py v7 support, uv migration, code quality improvements#104kais92 wants to merge 12 commits intoflashbots:masterfrom
kais92 wants to merge 12 commits intoflashbots:masterfrom
Conversation
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>
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.
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.