diff --git a/arbos/block_processor.go b/arbos/block_processor.go index a37fe16f86..6883ce8b84 100644 --- a/arbos/block_processor.go +++ b/arbos/block_processor.go @@ -193,7 +193,6 @@ func ProduceBlockAdvanced( chainConfig := chainContext.Config() header := createNewHeader(lastBlockHeader, l1Info, arbState, chainConfig) - signer := types.MakeSigner(chainConfig, header.Number, header.Time) // Note: blockGasLeft will diverge from the actual gas left during execution in the event of invalid txs, // but it's only used as block-local representation limiting the amount of work done in a block. blockGasLeft, _ := arbState.L2PricingState().PerBlockGasLimit() @@ -255,6 +254,7 @@ func ProduceBlockAdvanced( var sender common.Address var dataGas uint64 = 0 preTxHeaderGasUsed := header.GasUsed + signer := types.MakeSigner(chainConfig, header.Number, header.Time, arbState.ArbOSVersion()) receipt, result, err := (func() (*types.Receipt, *core.ExecutionResult, error) { // If we've done too much work in this block, discard the tx as early as possible if blockGasLeft < params.TxGas && isUserTx { diff --git a/execution/gethexec/sequencer.go b/execution/gethexec/sequencer.go index a18bd8de97..abdc7b78b7 100644 --- a/execution/gethexec/sequencer.go +++ b/execution/gethexec/sequencer.go @@ -916,7 +916,8 @@ func (s *Sequencer) precheckNonces(queueItems []txQueueItem, totalBlockSize int) return queueItems } nextHeaderNumber := arbmath.BigAdd(latestHeader.Number, common.Big1) - signer := types.MakeSigner(bc.Config(), nextHeaderNumber, latestHeader.Time) + arbosVersion := types.DeserializeHeaderExtraInformation(latestHeader).ArbOSFormatVersion + signer := types.MakeSigner(bc.Config(), nextHeaderNumber, latestHeader.Time, arbosVersion) outputQueueItems := make([]txQueueItem, 0, len(queueItems)) var nextQueueItem *txQueueItem var queueItemsIdx int diff --git a/execution/gethexec/tx_pre_checker.go b/execution/gethexec/tx_pre_checker.go index f4852d1731..6acb67dacb 100644 --- a/execution/gethexec/tx_pre_checker.go +++ b/execution/gethexec/tx_pre_checker.go @@ -127,7 +127,7 @@ func PreCheckTx(bc *core.BlockChain, chainConfig *params.ChainConfig, header *ty // and we want to disallow BlobTxType since Arbitrum doesn't support EIP-4844 txs yet. return types.ErrTxTypeNotSupported } - sender, err := types.Sender(types.MakeSigner(chainConfig, header.Number, header.Time), tx) + sender, err := types.Sender(types.MakeSigner(chainConfig, header.Number, header.Time, arbos.ArbOSVersion()), tx) if err != nil { return err } diff --git a/go-ethereum b/go-ethereum index 9f4bc5cf68..5657139e03 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit 9f4bc5cf68f6cf963c8d3b28416613246e7228f6 +Subproject commit 5657139e03124eceed3759bcaeee10e12918194d