Skip to content

Conversation

@thomas-nguy
Copy link
Collaborator

@thomas-nguy thomas-nguy commented Nov 5, 2025

👮🏻👮🏻👮🏻 !!!! REFERENCE THE PROBLEM YOUR ARE SOLVING IN THE PR TITLE AND DESCRIBE YOUR SOLUTION HERE !!!! DO NOT FORGET !!!! 👮🏻👮🏻👮🏻

Revert #1850 #1893 and #1892

PR Checklist:

  • Have you read the CONTRIBUTING.md?
  • Does your PR follow the C4 patch requirements?
  • Have you rebased your work on top of the latest master?
  • Have you checked your code compiles? (make)
  • Have you included tests for any non-trivial functionality?
  • Have you checked your code passes the unit tests? (make test)
  • Have you checked your code formatting is correct? (go fmt)
  • Have you checked your basic code style is fine? (golangci-lint run)
  • If you added any dependencies, have you checked they do not contain any known vulnerabilities? (go list -json -m all | nancy sleuth)
  • If your changes affect the client infrastructure, have you run the integration test?
  • If your changes affect public APIs, does your PR follow the C4 evolution of public contracts?
  • If your code changes public APIs, have you incremented the crate version numbers and documented your changes in the CHANGELOG.md?
  • If you are contributing for the first time, please read the agreement in CONTRIBUTING.md now and add a comment to this pull request stating that your PR is in accordance with the Developer's Certificate of Origin.

Thank you for your code, it's appreciated! :)

Summary by CodeRabbit

  • New Features

    • Added EIP-7702 authorization validation to transaction processing.
  • Improvements

    • Enhanced database read performance with optimized configuration.
    • Updated dependencies for improved stability and compatibility.
    • Refined optimistic execution handling for better safety.
  • Tests

    • Added new integration tests for transaction property validation.

@thomas-nguy thomas-nguy requested a review from a team as a code owner November 5, 2025 04:52
@thomas-nguy thomas-nguy requested review from JayT106 and songgaoye and removed request for a team November 5, 2025 04:52
@thomas-nguy thomas-nguy closed this Nov 5, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 5, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR introduces EIP-7702 authorization checks in transaction validation, adds staking cache sizing configuration, refines optimistic execution safety conditions, upgrades RocksDB with read optimizations, updates multiple dependencies (cometbft, ethermint, grocksdb), adds a new test contract for block/transaction properties, and updates the CHANGELOG with v1.5.0–v1.5.3 release entries.

Changes

Cohort / File(s) Summary
Release & Version Management
CHANGELOG.md, default.nix
CHANGELOG adds UNRELEASED section with v1.5.3, v1.5.2, v1.5.1, v1.5.0 entries and metadata; version bumped from v1.5.0 to v1.5.3.
Core App Logic
app/app.go
Introduces optimisticExecutionDisabled safety gate; conditionally enables optimistic execution; adds stakingCacheSize parameter to StakingKeeper; tightens memiavl cache condition to require both block-stm and optimistic execution disabled.
Transaction Validation
app/block_address.go
Adds EIP-7702 authorization check in AnteHandle for check-tx flows; iterates over SetCodeAuthorizations and blocks signers in blocked map.
Simulation Testing
app/sim_test.go
Reduces KV prefix exclusions for staking module from five keys to two (HistoricalInfoKey, ValidatorUpdatesKey).
Storage Optimization
cmd/cronosd/opendb/opendb_rocksdb.go
Enables asynchronous I/O and sets RocksDB readahead size to 16 MB.
Dependency Management
go.mod, gomod2nix.toml, versiondb/go.mod
Updates grocksdb (v1.9.10-0.20250331... → v1.10.2), cometbft (20250203... → 20251014...), ethermint (20250909... → 20251105...) with corresponding hash changes.
Nix Build Configuration
nix/rocksdb.nix
RocksDB version bumped from 9.11.2 to 10.4.2 with corresponding source hash update.
Integration Tests
integration_tests/contracts/contracts/TestBlockTxProperties.sol
New Solidity contract with TxDetailsEvent and emitTxDetails() function capturing tx.origin, msg.sender, msg.value, msg.data, tx.gasprice, gasleft(), and msg.sig.
Integration Test Harness
integration_tests/test_basic.py, integration_tests/utils.py
New test_block_tx_properties() function verifies transaction properties; TEST_CONTRACTS mapping expanded with TestBlockTxProperties entry.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • app/app.go: Multiple conditional initialization flows affecting cache behavior and execution modes; requires careful verification of safety gate logic and interactions between optimistic execution and memiavl caching.
  • app/block_address.go: EIP-7702 authorization check introduces new validation logic in hot path (AnteHandle); correctness of address resolution and blocking logic must be verified.
  • Dependency version bumps: While consistent patterns across files, the RocksDB upgrade (9.11.2 → 10.4.2) and cometbft/ethermint updates warrant verification of compatibility.
  • app/sim_test.go: Change to exclusion list may affect simulation test coverage; verify that removed unbonding keys do not mask state inconsistencies.

Possibly related PRs

Suggested labels

nix, cronos, build

Suggested reviewers

  • JayT106
  • leejw51crypto

Poem

🐰 A rabbit hops through test contracts new,
With optimistic gates and safety true,
RocksDB speeds ahead with async might,
EIP-7702 guards the blockchain's light,
Version bumps complete—v1.5.3's delight!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae678b5 and dea84c4.

⛔ Files ignored due to path filters (2)
  • go.sum is excluded by !**/*.sum
  • versiondb/go.sum is excluded by !**/*.sum
📒 Files selected for processing (13)
  • CHANGELOG.md (1 hunks)
  • app/app.go (3 hunks)
  • app/block_address.go (2 hunks)
  • app/sim_test.go (1 hunks)
  • cmd/cronosd/opendb/opendb_rocksdb.go (1 hunks)
  • default.nix (1 hunks)
  • go.mod (2 hunks)
  • gomod2nix.toml (3 hunks)
  • integration_tests/contracts/contracts/TestBlockTxProperties.sol (1 hunks)
  • integration_tests/test_basic.py (1 hunks)
  • integration_tests/utils.py (1 hunks)
  • nix/rocksdb.nix (1 hunks)
  • versiondb/go.mod (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added the nix label Nov 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants