|
|
@ -468,6 +468,11 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, |
|
|
|
err = ErrMaxCodeSizeExceeded |
|
|
|
err = ErrMaxCodeSizeExceeded |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Reject code starting with 0xEF if EIP-3541 is enabled.
|
|
|
|
|
|
|
|
if err == nil && len(ret) >= 1 && ret[0] == 0xEF && evm.chainRules.IsLondon { |
|
|
|
|
|
|
|
err = ErrInvalidCode |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// if the contract creation ran successfully and no errors were returned
|
|
|
|
// if the contract creation ran successfully and no errors were returned
|
|
|
|
// calculate the gas required to store the code. If the code could not
|
|
|
|
// calculate the gas required to store the code. If the code could not
|
|
|
|
// be stored due to not enough gas set an error and let it be handled
|
|
|
|
// be stored due to not enough gas set an error and let it be handled
|
|
|
|