Merge branch 'eip7702-support' into af-eip7702-addresses - #43
Conversation
…o handle EOA with code correctly
…d_authorizations.exs Co-authored-by: Kirill Fedoseev <kirill@blockscout.com>
…actions/:tx_hash` response (blockscout#10776) * feat: support EIP-7702 transactions * fix: handle invalid signatures * fix: save authority * Update apps/block_scout_web/lib/block_scout_web/views/api/v2/transaction_view.ex Co-authored-by: Kirill Fedoseev <kirill@blockscout.com> * Update apps/explorer/lib/explorer/chain/signed_authorization.ex Co-authored-by: Kirill Fedoseev <kirill@blockscout.com> * Update apps/indexer/lib/indexer/block/fetcher.ex Co-authored-by: Kirill Fedoseev <kirill@blockscout.com> * fix: remove set_code_transaction from @allowed_type_labels * Update apps/explorer/lib/explorer/chain/import/runner/signed_authorizations.ex Co-authored-by: Kirill Fedoseev <kirill@blockscout.com> * fix: move signed_authorization to a separate module * add todo --------- Co-authored-by: Kirill Fedoseev <kirill@blockscout.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughAdds EIP-7702 authorization-list decoding, authority recovery, database persistence, EOA-with-code detection, proxy support, transaction classification, and API rendering. ChangesEIP-7702 authorization support
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant JSONRPC
participant IndexerBlockFetcher
participant SignedAuthorizationRunner
participant TransactionView
JSONRPC->>IndexerBlockFetcher: authorizationList transaction data
IndexerBlockFetcher->>IndexerBlockFetcher: recover authority address
IndexerBlockFetcher->>SignedAuthorizationRunner: signed authorization records
SignedAuthorizationRunner-->>TransactionView: persisted signed authorizations
TransactionView-->>TransactionView: render authorization_list
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@apps/explorer/priv/repo/migrations/20240904161254_create_signed_authorizations.exs`:
- Line 14: Update the nonce column definition in the
create_signed_authorizations migration to use PostgreSQL’s bigint-compatible
type instead of :integer, while preserving the existing non-null constraint.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: a3c50935-7a51-4990-b0ed-204ed5ecfa24
📒 Files selected for processing (19)
apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_controller.exapps/block_scout_web/lib/block_scout_web/controllers/api/v2/transaction_controller.exapps/block_scout_web/lib/block_scout_web/views/api/v2/transaction_view.exapps/ethereum_jsonrpc/lib/ethereum_jsonrpc.exapps/ethereum_jsonrpc/lib/ethereum_jsonrpc/signed_authorization.exapps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.exapps/explorer/lib/explorer/chain/address.exapps/explorer/lib/explorer/chain/address/counters.exapps/explorer/lib/explorer/chain/import/runner/signed_authorizations.exapps/explorer/lib/explorer/chain/import/stage/block_referencing.exapps/explorer/lib/explorer/chain/signed_authorization.exapps/explorer/lib/explorer/chain/smart_contract/proxy.exapps/explorer/lib/explorer/chain/smart_contract/proxy/eip_7702.exapps/explorer/lib/explorer/chain/smart_contract/proxy/models/implementation.exapps/explorer/lib/explorer/chain/transaction.exapps/explorer/priv/repo/migrations/20240904161254_create_signed_authorizations.exsapps/explorer/priv/repo/migrations/20240918104231_new_proxy_type_eip7702.exsapps/indexer/lib/indexer/block/fetcher.exapps/indexer/lib/indexer/fetcher/on_demand/contract_code.ex
|
Note Unit test generation is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it. Generating unit tests... This may take up to 20 minutes. |
ajit2903
left a comment
There was a problem hiding this comment.
Auth
Commented in CodeRabbit Change Stack
|
Request timed out after 900000ms (requestId=6fe01c94-0625-4406-8490-8282e7baaf34) |
Implemented from a Change Stack AI coding task. Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
|
Deployment failed with the following error: Learn More: https://vercel.com/ajiytmr?upgradeToPro=build-rate-limit |
GitHub keywords to close any associated issues
Motivation
Why we should merge these changes. If using GitHub keywords to close issues, this is optional as the motivation can be read on the issue page.
Changelog
Enhancements
Things you added that don't break anything. Regression tests for Bug Fixes count as Enhancements.
Bug Fixes
Things you changed that fix bugs. If it fixes a bug but, in so doing, adds a new requirement, removes code, or requires a database reset and reindex, the breaking part of the change should also be added to "Incompatible Changes" below.
Incompatible Changes
Things you broke while doing Enhancements and Bug Fixes. Breaking changes include (1) adding new requirements and (2) removing code. Renaming counts as (2) because a rename is a removal followed by an add.
Upgrading
If you have any Incompatible Changes in the above Changelog, outline how users of prior versions can upgrade once this PR lands or when reviewers are testing locally. A common upgrading step is "Database reset and re-index required".
Checklist for your Pull Request (PR)
master.Summary by CodeRabbit