diff --git a/core/vm/evm.go b/core/vm/evm.go index 4ca4b3c96..c84fc1ee7 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -437,9 +437,11 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, return nil, common.Address{}, gas, ErrNonceUintOverflow } evm.StateDB.SetNonce(caller.Address(), nonce+1) - // Fail if the caller is not allowed to create - // Need to check after nonce increment to evict failed tx from the pool - if !IsAllowedToCreate(evm.StateDB, caller.Address()) { + // Fail if the caller is not allowed to create. Limited to `CREATE` + // because this check targets raw transactions from EOA, and `CREATE2` + // within internal transactions is excluded. + // Need to check after nonce increment to evict failed tx from the pool. + if typ == CREATE && !IsAllowedToCreate(evm.StateDB, caller.Address()) { return nil, common.Address{}, 0, ErrUnauthorizedCreate } // We add this to the access list _before_ taking a snapshot. Even if the creation fails, diff --git a/params/version.go b/params/version.go index 251bcc277..388c8d671 100644 --- a/params/version.go +++ b/params/version.go @@ -23,7 +23,7 @@ import ( const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 7 // Minor version component of the current release - VersionPatch = 0 // Patch version component of the current release + VersionPatch = 1 // Patch version component of the current release VersionMeta = "" // Version metadata to append to the version string )