Skip to content

fix coinbase tracking as discussed in breakout call nr 5#21

Closed
nerolation wants to merge 18 commits intofselmo:feat/amsterdam-fork-and-block-access-listsfrom
nerolation:fix-coinbase
Closed

fix coinbase tracking as discussed in breakout call nr 5#21
nerolation wants to merge 18 commits intofselmo:feat/amsterdam-fork-and-block-access-listsfrom
nerolation:fix-coinbase

Conversation

@nerolation
Copy link
Collaborator

@nerolation nerolation commented Oct 23, 2025

This implements coinbase tracking as discussed in breakout call 5:

  • If a block has transactions, the coinbase is always included in the BAL
  • Zero-value rewards include the coinbase as read-only (analogous to zero-value calls)
  • If a block has no transactions, the coinbase is NOT included in the BAL

fselmo and others added 17 commits September 23, 2025 08:07
* feat(fork): Create amsterdam fork using new fork tool

* fix: manual fixes after creating amsterdam fork from osaka

* fix: Use indexing to designate order of unscheduled forks

* move amsterdam -> forks/amsterdam
- bal -> block_access_list; re-add custom rlp encoding for block access list
- bytes to uint
- move away from method-style

- Update EIP-7928 implementation: system contracts at index 0, migrate to RLP
  - System contracts (parent hash, beacon root) now use block_access_index 0
  - Transactions use block_access_index 1 to len(transactions)
  - Post-execution changes use block_access_index len(transactions) + 1
  - Migrated from SSZ to RLP encoding as per updated EIP-7928 spec
  - Updated all tests to match new API and structure
  - Replaced tx_index with block_access_index throughout codebase

- add system contract logic
- add markdown docstrings
- update BAL format; address comments
- ssz encoding and bal validation
- six ssz types
- bal tests
- balspecs
- fix(bal): Initialize the state tracker before system contract calls

- We were missing system contract calls to beacon roots and history
  contracts. This change initializes the state tracker before system
  contract calls and passes the tracker to these calls if post-Amsterdam.

- fix(docs): Fix issues with toxenvs: lint, doc, json_infra
- fix(t8n): Only initialize the bal_change_tracker for amsterdam
- feat(fork criteria): Index upcoming forks for better ordering / fix issues
- chore(forks): Fix issues from lint after rebase with Osaka latest
- fix(setuptools): Update packages to include amsterdam
- chore(lint): Fix 'tox -e static' issues

- Fix bug in tracker
  Manually cherry-picked from e72991b
  Author: nerolation

- chore(tests): Attempt to resolve issues with CI tests
- chore(lint): fix issues from running ``tox -e static`` locally
- refactor(bal): Send BAL as a list over t8n tool
- fix(amsterdam): Add change tracker to state test in t8n
- chore(lint,tests): Fix tests after moving bal from osaka -> amsterdam
- chore(forks): Move bals from Osaka to Amsterdam
- chore(lint): Fix lint issues

- refactor(bal): Send the full bal object and bal_hash over t8n

  - If we send the full object over JSON, we can model_validate() on ESST.
  - If we send the hash, once we fill the pydantic model, we can get the rlp
    and the hash and validate that our objects match while only really
    validating the parts of the BAL we are interested in for each test.

- chore: point to working eest branch
- chore(bals): Remove unused SSZ utils.py
  The SSZ implementation is no longer needed as we are now using RLP
- refactor(bals): Clean up BAL module types and imports
  - Bytes -> Bytes32 type for storage slots
  - Remove unused imports / fix imports / fix linting
  - Update function signatures to match tracker

- fix(bals-tx-index): Track bal indexes in t8n
  Keep track of BAL index state in t8n as is done in the Osaka ``fork.py`` implementation.
- Move BALs from amsterdam -> forks/amsterdam
- rename: build -> build_block_access_list
- fix docc issues
* fix zero-value transfer tracking
* fix reverted frame tracking
* rename variables
* fix missing addresses bug
* fix: docs run & move imports to top of file

---------

Co-authored-by: fselmo <fselmo2@gmail.com>
* fix self-destruct implementation

* fix self-destruct tracking balance

* fix it in the bal finalization by filtering

* add balance reset and fix tests

* simplify pre-balance tracking not using snapshots

* fix: lint issues

---------

Co-authored-by: fselmo <fselmo2@gmail.com>
* fix non-tracked 7702 authority for invalid delegations

* fix: lint issues

* fix: track delegation target when loaded as call target

* fix: track delegation target when loaded as call target from call opcodes

* chore: fix issues with documentation generation

---------

Co-authored-by: fselmo <fselmo2@gmail.com>
@cr-gpt
Copy link

cr-gpt bot commented Oct 23, 2025

Seems you are using me but didn't get OPENAI_API_KEY seted in Variables/Secrets for this repo. you could follow readme for more information

@cr-gpt
Copy link

cr-gpt bot commented Oct 23, 2025

Seems you are using me but didn't get OPENAI_API_KEY seted in Variables/Secrets for this repo. you could follow readme for more information

@fselmo fselmo force-pushed the feat/amsterdam-fork-and-block-access-lists branch 3 times, most recently from 9aeac17 to 5898499 Compare October 27, 2025 17:12
@fselmo
Copy link
Owner

fselmo commented Oct 29, 2025

taken care of in #25

@fselmo fselmo closed this Oct 29, 2025
fselmo pushed a commit that referenced this pull request Jan 6, 2026
* chore: add grammar check automation files

* docs: fix grammar in consume plugin files (#20)

Fix grammar issues in consume plugin docstrings and comments:
- "A dictionary caches" -> "A dictionary that caches" (missing "that")
- "Definers" -> "Defines" (typo)
- "Un-expected" -> "Unexpected" (incorrect hyphenation)
- "older version" -> "older versions" (subject-verb agreement)

Co-authored-by: Claude <noreply@anthropic.com>

* chore(docs): fix grammar in filler plugin docstrings (#21)

- Fix subject-verb agreement: "The forks is" -> "The fork is"
- Fix preposition: "value to each" -> "value for each"
- Fix sentence structure: "(which) ... occurs" -> ", which ... that occurs"

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in execute plugin files (#22)

- Fix "using in live networks" -> "on live networks" (execute.py:2)
- Fix missing spaces between concatenated help strings in execute.py
- Fix "using for test filling" -> "used for test filling" (pre_alloc.py:1)
- Fix missing spaces in concatenated help strings in remote.py

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in forks, shared, and help plugin files (#23)

Fixed 9 grammar issues:
- forks/__init__.py: Added missing "and" in docstring
- forks/forks.py: Fixed "ran" -> "run" (passive voice)
- forks/forks.py: Removed space in URL fragment
- forks/forks.py: Fixed double "any any" -> "any"
- test_bad_command_line_options.py: Fixed article/noun agreement
- test_bad_validity_markers.py: Fixed article/noun agreement
- shared/helpers.py: Fixed verb tense for parallel structure
- shared/execute_fill.py: Added missing article "A"
- help/help.py: Fixed double article "the a" -> "a"


Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in pytest_commands/plugins root files (#24)

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in cli/pytest_commands root files (#25)

Remove extra space after newline in watcher.py watch mode message.

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in cli/gentest and cli/fuzzer_bridge (#26)

- Fix article "An provider" → "A provider" (test_context_providers.py)
- Fix subject-verb agreement "generates" → "generate" (test_providers.py)
- Add missing preposition "for" in "A request manager for Ethereum RPC calls" (request_manager.py)

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in cli/eest, cli/input, and cli/fillerconvert (#27)

* docs: fix grammar in cli/eest, cli/input, and cli/fillerconvert

Fix missing space in string concatenation in quotes.py where
"that" and "experience" were joined without a space.

Flag one low-confidence issue in verify_filled.py for manual
review regarding informal verb usage.

* docs: apply manual grammar fix in verify_filled.py

Improve docstring clarity by:
- Adding missing articles ("the original", "the refilled test")
- Replacing informal "Regex" verb with "Extract"
- Reformatting for better readability

---------

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in packages/testing/src/execution_testing/cli/*.py (#28)

- gen_index.py: Add missing space between sentences in help text
- modify_static_test_gas_limits.py: Remove duplicate word "files files"
- tox_helpers.py: Remove extra space in error message
- show_pre_alloc_group_stats.py: Fix capitalization mid-sentence

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in packages/testing/src/execution_testing/cli/tests (#29)

- Fix "allows to actually fill" → "allows actually filling" (missing verb form)
- Fix "uses the a temporary" → "uses a temporary" (double article)

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in test_types module (#30)

- Fix double space in helpers.py docstring
- Complete incomplete sentence in trie.py module docstring

Co-authored-by: Claude <noreply@anthropic.com>

* docs: grammar check specs module (round 12) (#31)

Reviewed 28 files in packages/testing/src/execution_testing/specs/**/*.py
for grammar issues.

Fixed 1 grammar issue:
- blockchain.py:167-168 - fixed sentence fragment "encoding. included"

Co-authored-by: Claude <noreply@anthropic.com>

* docs: grammar check round 13 (fixtures + client_clis) (#32)

Reviewed packages/testing/src/execution_testing/fixtures/**/*.py (16 files)
- No grammar issues found

Reviewed packages/testing/src/execution_testing/client_clis/**/*.py (20 files)
Fixed 4 grammar issues:
- ethereum_cli.py:158 - Added missing space after "0!"
- evmone.py:207 - "an select" -> "and select"
- nethermind.py:209 - "an select" -> "and select"
- geth.py:383 - "an select" -> "and select"

Flagged 1 item for manual review:
- clis/__init__.py:1 - "CL interfaces" may be typo for "CLI interfaces"

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in base_types module (#33)

- Fix "it can added" -> "it can be added" in mixins.py
- Fix "and returns" -> "and return" for consistent imperative form in composite_types.py
- Fix "an hexadecimal numbers" -> "hexadecimal numbers" in base_types.py

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in forks module (ethereum#34)

base_fork.py:
- precompiles(): "Return list precompiles" -> "Return list of precompiles"
- system_contracts(): "Return list system-contracts" -> "Return list of system contracts"

forks/forks/forks.py:
- Standardize "pre-compiles" -> "precompiles" (no hyphen) in:
  - Frontier.precompiles()
  - Homestead.precompiles()
  - Byzantium.precompiles()
  - Istanbul.precompiles()
  - Cancun.precompiles()
  - Prague.precompiles()
  - Osaka.precompiles()
- Standardize "system-contracts" -> "system contracts" in Frontier.system_contracts()
- Fix subject-verb agreement: "pre-compile for BLS operations are" -> "precompiles for BLS operations are"
- Fix max_initcode_size(): merge standalone string into docstring with proper formatting
- Add missing article "a" before "precompile for" in Istanbul, Cancun, and Osaka

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in tools and exceptions modules (ethereum#35)

Fix typos and grammar issues:
- Fix "defniitions" -> "definitions" in engine_api.py
- Fix "it's" -> "its" (possessive) in eof.py and exceptions.py
- Fix "an stack" -> "a stack" for underflow/overflow in eof.py and exceptions.py

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in vm, rpc, and config modules (ethereum#36)

Remove duplicate text in error message in opcodes.py

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix grammar in execution_testing core modules (logging, execution, checklists, benchmark) and root files (ethereum#37)

Fixed "were request" -> "were requested" in blob_transaction.py comment.

Co-authored-by: Claude <noreply@anthropic.com>

* docs: fix docstring in client_clis module

Corrected terminology from "CL interfaces" to "EL clients" - these are
Execution Layer client implementations, not Consensus Layer.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: fix grammar in exceptions module

- block.py: "is calculated incorrect" → "is calculated incorrectly"
- transaction.py: "is exceeds" → "exceeds" (removed double verb)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: fix punctuation in checklists module

Changed period to colon in DataPortionVariables docstring to properly
introduce the list of test cases (Top, Bottom, Middle).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: remove files used for llm automation

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants