cronos icon indicating copy to clipboard operation
cronos copied to clipboard

feat: support create_access_list

Open thomas-nguy opened this issue 4 months ago • 3 comments

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

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 support for create_access_list to improve transaction handling and storage access optimization.
  • Tests
    • Added end-to-end tests validating access list behavior and contract interactions.
  • Chores
    • Bumped Go/tooling module references to newer versions for build reproducibility.
  • Documentation
    • Added an UNRELEASED changelog entry noting the new access list support.

✏️ Tip: You can customize this high-level summary in your review settings.

thomas-nguy avatar Dec 07 '25 05:12 thomas-nguy

Walkthrough

Adds an integration test and Solidity test contract for access lists, registers the contract in test assets, updates integration test utility, bumps Go version, and updates the evmos/ethermint module mapping and hash; adds an UNRELEASED changelog entry referencing create_access_list.

Changes

Cohort / File(s) Summary
Dependency updates
go.mod, gomod2nix.toml
Bumped Go version to 1.25.0 and updated the github.com/evmos/ethermint pseudo-version/hash replacement in both files.
Changelog
CHANGELOG.md
Added an UNRELEASED improvement entry: "Support create_access_list" (references PR #1932).
Test contract
TestAccessList
integration_tests/contracts/.../TestAccessList.sol
New Solidity contract TestAccessList with public slotA, slotB, balances, and touchSlots(uint256 a, uint256 b) to exercise multiple storage slots.
Integration tests & utilities
integration_tests/test_basic.py, integration_tests/utils.py
Added test_access_list(cronos) end-to-end test that builds/sends txns with access lists and verifies persisted access lists; registered TestAccessList in TEST_CONTRACTS.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Inspect go.mod and gomod2nix.toml for correct pseudo-version/hash and ensure replace semantics are intentional.
  • Review integration_tests/test_basic.py for correctness of access-list construction and on-chain assertions.
  • Verify TestAccessList.sol storage layout and that touchSlots updates expected slots.
  • Confirm TEST_CONTRACTS registration path matches test build/deploy tooling.

Possibly related PRs

  • crypto-org-chain/cronos#1906 — Also updates the github.com/evmos/ethermint replace/redirect entry (same dependency change).

Suggested labels

nix

Suggested reviewers

  • XinyuCRO
  • calvinaco
  • songgaoye

Poem

🐇 I hopped through storage, two slots in sight,
I nudged the numbers till the state was right.
An access list I traced with gentle kicks,
Tests nodded yes — my ledger ticks.
Off I go, a cheerful coding sprite.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: support create_access_list' directly matches the PR's primary objective and accurately reflects the main changes across all modified files.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • [ ] 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

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.

coderabbitai[bot] avatar Dec 07 '25 05:12 coderabbitai[bot]

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedgolang/​github.com/​crypto-org-chain/​ethermint@​v0.22.1-0.20251210080935-9a1a449c16db ⏵ v0.22.1-0.20251212021209-7da2d575eebe75 +110010010070

View full report

socket-security[bot] avatar Dec 07 '25 06:12 socket-security[bot]

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 25.65%. Comparing base (a3c2f70) to head (6004300). :warning: Report is 130 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1932      +/-   ##
==========================================
+ Coverage   16.87%   25.65%   +8.77%     
==========================================
  Files          72       78       +6     
  Lines        6163     5118    -1045     
==========================================
+ Hits         1040     1313     +273     
+ Misses       5000     3643    -1357     
- Partials      123      162      +39     

see 73 files with indirect coverage changes

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar Dec 07 '25 06:12 codecov[bot]