From a1c1860cb921f3be18e189766404e79840b7d215 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 2 Dec 2024 13:16:23 +0100 Subject: [PATCH] core/vm: add comment about chained EIP-7702 delegations --- core/vm/evm.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/vm/evm.go b/core/vm/evm.go index 678293da3a..6d217aa315 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -575,6 +575,7 @@ func (evm *EVM) resolveCode(addr common.Address) []byte { return code } if target, ok := types.ParseDelegation(code); ok { + // Note we only follow one level of delegation. return evm.StateDB.GetCode(target) } return code @@ -584,12 +585,12 @@ func (evm *EVM) resolveCode(addr common.Address) []byte { // After Prague, it can also resolve code hash of the account pointed to by a // delegation designator. func (evm *EVM) resolveCodeHash(addr common.Address) common.Hash { - if !evm.chainRules.IsPrague { - return evm.StateDB.GetCodeHash(addr) - } - code := evm.StateDB.GetCode(addr) - if target, ok := types.ParseDelegation(code); ok { - return evm.StateDB.GetCodeHash(target) + if evm.chainRules.IsPrague { + code := evm.StateDB.GetCode(addr) + if target, ok := types.ParseDelegation(code); ok { + // Note we only follow one level of delegation. + return evm.StateDB.GetCodeHash(target) + } } return evm.StateDB.GetCodeHash(addr) }