Skip to content

Conversation

@annielz
Copy link
Contributor

@annielz annielz commented Dec 25, 2025

Description

Restore CodeAddr in Contract structure, which was removed by previously merging to upstream geth 1.6.1 here: 97b6233

Rationale

After CodeAddr was removed, superinstruction CODECOPY uses contract.address instead to resolve code. It fetches the proxy contract's code instead of the target contract's code, which returns wrong data, and eventually causes execution to diverge from expected behavior.

Therefore we still need CodeAddr for the target contract's code.

Changes

Notable changes:

  • restore CodeAddr in Contract structure and use it in interpreter.evm.resolveCode
  • lower some superinstruction log to debug level

@annielz annielz changed the base branch from master to develop December 25, 2025 06:28
@annielz annielz changed the title Fix si v1.6.5 fix: add back Contract CodeAddr for superinstruction Dec 25, 2025
@annielz annielz merged commit f5d420d into develop Dec 26, 2025
6 of 7 checks passed
@allformless allformless added this to the 1.7.0 milestone Jan 19, 2026
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