Skip to content

Conversation

@Frozen
Copy link
Collaborator

@Frozen Frozen commented Oct 6, 2025

This pull request implements support for London and Berlin Ethereum hard forks along with corresponding updates to the codebase for Harmony 1.10. The main focus is on updating EVM components and protocol parameters to align with these Ethereum improvements.

@Frozen Frozen requested a review from Copilot October 6, 2025 15:06

This comment was marked as resolved.

@Frozen Frozen self-assigned this Nov 11, 2025
@GheisMohammadi GheisMohammadi self-requested a review November 18, 2025 22:57
Frozen and others added 25 commits November 19, 2025 18:01
* Transient storage functionality

* Commented code block in blockchain_test.go

* Refactor state transition rules and remove commented-out Prepare method

* Remove commented-out code block in chain_makers_test.go

* Remove unnecessary parameter from ChainConfig.Rules calls in runtime.go

* Refactor ActivePrecompiles function to use rules parameter instead of evm.chainRules

* Refactor state transition preparation to use statedb.Prepare method
* Refactor tracing implementation to replace duktape with goja and clean up unused code

* Update transaction context handling in tracer to use SetTxContext method

* Refactor tracing implementation to use hmyapi for state and block overrides

* Refactor trace event subscriptions to use events package and clean up unused code

* fix(ci): change if condition to build all RPs without checkin a base branch, previously only dev and main

* Refactor jsTracer methods to improve parameter handling and remove unused context

* Refactor logger_test.go to update import paths for Harmony package

* Refactor tracer_test.go to update import paths and improve state handling

* Refactor tracer_test.go to comment out a test case for bad arguments to stack peeks

* Refactor Makefile to run specific test for TestTracer in go-test target

* Refactor Makefile to run TestTracer specifically in the js tracer directory

* Refactor tracer_test.go to improve error handling and logging in test cases

* Refactor tracer_test.go to simplify error message formatting in test cases

* Refactor Makefile to enable verbose output for TestTracer tests

* Refactor tracer_test.go to enhance logging of tracer results during test execution

* Add logging for contract code in EVMInterpreter Run method

* Add debug logging for contract input in EVMInterpreter Run method

* Enable debug mode in EVM configuration for enhanced tracing during tests

* Refactor tracer_test.go to improve test case formatting and readability

* Refactor tracer_test.go to comment out unused test cases for clarity

* Refactor tracer_test.go to uncomment and enable relevant test cases for improved coverage

* Refactor tracer_test.go to add a test case for intrinsic gas calculation

* Refactor goja.go to store intrinsic gas calculation in context

* Refactor tracer_test.go to improve test case clarity and formatting

* Refactor goja.go to update gasUsed assignment and add time context

* Refactor goja.go to remove unused gasUsed assignment in CaptureTxEnd

* Refactor tracer_test.go to improve test case formatting and clarity

* Refactor tracer_test.go to simplify error reporting in test cases

* Refactor tracer_test.go to remove unnecessary debug print statements

* Refactor interpreter.go to remove unused debug print statement

* Refactor Makefile to enhance go test command with race detection and vetting

* Refactor gen_structlog.go to add omitempty for Memory and ReturnData fields and reorder CallerAddress and ContractAddress

* Refactor logger.go to simplify go:generate command for gencodec

* Refactor Makefile to run specific tracer tests and enhance tracer result logging

* Refactor tracer_test.go to comment out specific test cases for memory access and intrinsic gas

* Refactor Makefile to enable verbose output for tracer tests

* Refactor tracer_test.go to print tracer results as a string for better readability

* Refactor tracer_test.go to enhance logging of tracer results for improved debugging

* Refactor tracer.go to log trace results and errors for improved visibility

* Add debug logging for tracer type and configuration in tracer.go

* Add logging for execution results in logger.go for improved traceability

* Add logging for gas limit and remaining gas in CaptureTxEnd for better traceability

* Add debug tracing for transaction start and end in state_transition.go

* Add contract and caller address to StructLog for enhanced logging

* Add caller and contract addresses to structured logs for enhanced traceability

* Improve error message for tracer not found in tracers.go

* Enhance error message for tracer not found in tracers.go to include lookup count

* Add native tracers for transaction analysis: fourByteTracer, callTracer, prestateTracer, revertReasonTracer, and noopTracer

* Add debug log for lookup registration count in tracers.go

* Add panic message for unregistered JS tracer and implement RegisterLookupCount function

* Add panic message in init function for debugging purposes

* Update import path for tracers to use Harmony's package

* Import JS tracers package in hmy.go

* Refactor import paths to use Harmony's core and tracers packages

* Remove debug panic statements from init function in goja.go

* Add time field to callFrame struct in call.go

* Clean up tracer_test.go by removing unnecessary debug print statements

* Update contract code in tracer_test.go to use STOP instruction

* Update logger fields to be omitempty and adjust test expectations

* Remove rosetta checker from Travis CI configuration

* Update CallerAddress and ContractAddress fields to be omitempty in gen_structlog.go

---------

Co-authored-by: Uladzislau Muraveika <[email protected]>
* Test: add transient storage opcodes test case

* Refactor: update go test command to run specific transient storage opcodes test

* Refactor: update go test command to run specific transient storage opcodes test

* Refactor: configure EVM with ExtraEips for transient storage opcodes

* Refactor: implement EIP-1153 for transient storage opcodes TLOAD and TSTORE

* Refactor: update contract code to use PUSH1 for transient storage opcodes

* Refactor: enhance TestTransientStorageOpcodes for opcode testing and update Makefile for improved test command

* Refactor: add support for EIP-1153 transient storage in ChainConfig and update instruction set
* Test: add transient storage opcodes test case

* Refactor: update go test command to run specific transient storage opcodes test

* Refactor: update go test command to run specific transient storage opcodes test

* Refactor: configure EVM with ExtraEips for transient storage opcodes

* Refactor: implement EIP-1153 for transient storage opcodes TLOAD and TSTORE

* Refactor: update contract code to use PUSH1 for transient storage opcodes

* Refactor: enhance TestTransientStorageOpcodes for opcode testing and update Makefile for improved test command

* Refactor: add support for EIP-1153 transient storage in ChainConfig and update instruction set

* Activation epoch for transient storage
@mur-me mur-me self-requested a review November 20, 2025 06:21
@GheisMohammadi GheisMohammadi merged commit 31752f2 into dev Nov 20, 2025
3 checks passed
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.

4 participants