diff --git a/core/state_processor_test.go b/core/state_processor_test.go index d175b5eac59a..9d6cbdbc8b52 100644 --- a/core/state_processor_test.go +++ b/core/state_processor_test.go @@ -132,6 +132,7 @@ func TestStateProcessorErrors(t *testing.T) { bigNumber := new(big.Int).SetBytes(common.MaxHash.Bytes()) tooBigNumber := new(big.Int).Set(bigNumber) tooBigNumber.Add(tooBigNumber, common.Big1) + gasLimit := blockchain.CurrentHeader().GasLimit for i, tt := range []struct { txs []*types.Transaction want string @@ -157,9 +158,9 @@ func TestStateProcessorErrors(t *testing.T) { }, { // ErrGasLimitReached txs: []*types.Transaction{ - makeTx(key1, 0, common.Address{}, big.NewInt(0), 21000000, big.NewInt(875000000), nil), + makeTx(key1, 0, common.Address{}, big.NewInt(0), gasLimit+1, big.NewInt(875000000), nil), }, - want: "could not apply tx 0 [0xbd49d8dadfd47fb846986695f7d4da3f7b2c48c8da82dbc211a26eb124883de9]: gas limit reached", + want: "could not apply tx 0 [0xd0fb3ea181e800cd55c4637c55c1f2f78137efb6bb9723e50bda3cad97208db2]: gas limit reached", }, { // ErrInsufficientFundsForTransfer txs: []*types.Transaction{ @@ -185,9 +186,9 @@ func TestStateProcessorErrors(t *testing.T) { }, { // ErrGasLimitReached txs: []*types.Transaction{ - makeTx(key1, 0, common.Address{}, big.NewInt(0), params.TxGas*1000, big.NewInt(875000000), nil), + makeTx(key1, 0, common.Address{}, big.NewInt(0), gasLimit+1, big.NewInt(875000000), nil), }, - want: "could not apply tx 0 [0xbd49d8dadfd47fb846986695f7d4da3f7b2c48c8da82dbc211a26eb124883de9]: gas limit reached", + want: "could not apply tx 0 [0xd0fb3ea181e800cd55c4637c55c1f2f78137efb6bb9723e50bda3cad97208db2]: gas limit reached", }, { // ErrFeeCapTooLow txs: []*types.Transaction{ @@ -256,6 +257,12 @@ func TestStateProcessorErrors(t *testing.T) { }, // ErrSetCodeTxCreate cannot be tested here: it is impossible to create a SetCode-tx with nil `to`. // The EstimateGas API tests test this case. + { // ErrGasLimitTooHigh + txs: []*types.Transaction{ + makeTx(key1, 0, common.Address{}, big.NewInt(0), params.MaxTxGas+1, big.NewInt(875000000), nil), + }, + want: "could not apply tx 0 [0x16505812a6da0b0150593e4d4eb90190ba64816a04b27d19ca926ebd6aff8aa0]: transaction gas limit too high (cap: 16777216, tx: 16777217)", + }, } { block := GenerateBadBlock(gspec.ToBlock(), beacon.New(ethash.NewFaker()), tt.txs, gspec.Config, false) _, err := blockchain.InsertChain(types.Blocks{block}) diff --git a/params/protocol_params.go b/params/protocol_params.go index f52bb27380d6..3b48709a884d 100644 --- a/params/protocol_params.go +++ b/params/protocol_params.go @@ -28,7 +28,7 @@ const ( MaxGasLimit uint64 = 0x7fffffffffffffff // Maximum the gas limit (2^63-1). GenesisGasLimit uint64 = 4712388 // Gas limit of the Genesis block. - MaxTxGas uint64 = 30_000_000 // Maximum transaction gas limit after eip-7825. + MaxTxGas uint64 = 1 << 24 // Maximum transaction gas limit after eip-7825 (16,777,216). MaximumExtraDataSize uint64 = 32 // Maximum size extra data may be after Genesis. ExpByteGas uint64 = 10 // Times ceil(log256(exponent)) for the EXP instruction.