Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ require (
lukechampine.com/blake3 v1.3.0 // indirect
)

replace github.com/ethereum/go-ethereum => github.com/ethereum-optimism/op-geth v1.101604.0-synctest.0
replace github.com/ethereum/go-ethereum => github.com/ethereum-optimism/op-geth v1.101604.0-synctest.0.0.20251120150812-e50f80a16afc

// replace github.com/ethereum/go-ethereum => ../op-geth

Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,8 @@ github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A=
github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s=
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e h1:iy1vBIzACYUyOVyoADUwvAiq2eOPC0yVsDUdolPwQjk=
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e/go.mod h1:DYj7+vYJ4cIB7zera9mv4LcAynCL5u4YVfoeUu6Wa+w=
github.com/ethereum-optimism/op-geth v1.101604.0-synctest.0 h1:cWnKry8Cgworpw3X+TDEr57DCYefjN9Tmy2eJ9elMzE=
github.com/ethereum-optimism/op-geth v1.101604.0-synctest.0/go.mod h1:fCNAwDynfAP6EKsmLqwSDUDgi+GtJIir74Ui3fXXMps=
github.com/ethereum-optimism/op-geth v1.101604.0-synctest.0.0.20251120150812-e50f80a16afc h1:LjpnuhWfU8vMXq/X188xuiwG6NMDbMzwGwGArDPKk4c=
github.com/ethereum-optimism/op-geth v1.101604.0-synctest.0.0.20251120150812-e50f80a16afc/go.mod h1:fCNAwDynfAP6EKsmLqwSDUDgi+GtJIir74Ui3fXXMps=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251009180028-9b4658b9b7af h1:WWz0gJM/boaUImtJnROecPirAerKCLpAU4m6Tx0ArOg=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251009180028-9b4658b9b7af/go.mod h1:NZ816PzLU1TLv1RdAvYAb6KWOj4Zm5aInT0YpDVml2Y=
github.com/ethereum/c-kzg-4844/v2 v2.1.5 h1:aVtoLK5xwJ6c5RiqO8g8ptJ5KU+2Hdquf6G3aXiHh5s=
Expand Down
2 changes: 1 addition & 1 deletion op-acceptance-tests/tests/jovian/min_base_fee.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (mbf *minBaseFeeEnv) verifyMinBaseFee(t devtest.T, minBase *big.Int) {
// waitForMinBaseFeeConfigChangeOnL2 waits until the L2 latest payload extra-data encodes the expected min base fee.
func (mbf *minBaseFeeEnv) waitForMinBaseFeeConfigChangeOnL2(t devtest.T, expected uint64) {
client := mbf.l2EL.Escape().L2EthClient()
expectedExtraData := eth.BytesMax32(eip1559.EncodeMinBaseFeeExtraData(250, 6, expected))
expectedExtraData := eth.BytesMax32(eip1559.EncodeJovianExtraData(250, 6, expected))

// Check extradata in block header (for all clients)
var actualBlockExtraData []byte
Expand Down
4 changes: 2 additions & 2 deletions op-chain-ops/genesis/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const defaultGasLimit = 30_000_000
var HoloceneExtraData = eip1559.EncodeHoloceneExtraData(250, 6)

// MinBaseFeeExtraData represents the default extra data for Jovian-genesis chains.
var MinBaseFeeExtraData = eip1559.EncodeMinBaseFeeExtraData(250, 6, 0)
var MinBaseFeeExtraData = eip1559.EncodeJovianExtraData(250, 6, 0)

// NewL2Genesis will create a new L2 genesis
func NewL2Genesis(config *DeployConfig, l1StartHeader *eth.BlockRef) (*core.Genesis, error) {
Expand Down Expand Up @@ -123,7 +123,7 @@ func NewL2Genesis(config *DeployConfig, l1StartHeader *eth.BlockRef) (*core.Gene
if optimismChainConfig.IsIsthmus(genesis.Timestamp) {
genesis.Alloc[params.HistoryStorageAddress] = types.Account{Nonce: 1, Code: params.HistoryStorageCode, Balance: common.Big0}
}
if optimismChainConfig.IsMinBaseFee(genesis.Timestamp) {
if optimismChainConfig.IsJovian(genesis.Timestamp) {
genesis.ExtraData = MinBaseFeeExtraData
}

Expand Down
2 changes: 1 addition & 1 deletion op-devstack/dsl/bridge.go
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,7 @@ func gasCost(rcpt *types.Receipt, rollupCfg *rollup.Config, blockTimestamp *uint
}
operatorCost := new(big.Int).SetUint64(rcpt.GasUsed)
operatorCost.Mul(operatorCost, new(big.Int).SetUint64(*rcpt.OperatorFeeScalar))
if rollupCfg.IsOperatorFeeFix(*blockTimestamp) {
if rollupCfg.IsJovian(*blockTimestamp) {
operatorCost.Mul(operatorCost, big.NewInt(100))
} else {
operatorCost.Div(operatorCost, big.NewInt(1_000_000))
Expand Down
4 changes: 2 additions & 2 deletions op-e2e/actions/proofs/jovian_minbasefee_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func Test_ProgramAction_JovianMinBaseFee(gt *testing.T) {
require.True(t, isJovian, "GPO should report that Jovian is active")

activationBlock := env.Engine.L2Chain().GetBlockByHash(env.Sequencer.L2Unsafe().Hash)
require.Equal(t, eip1559.EncodeMinBaseFeeExtraData(250, 6, 0), activationBlock.Extra(), "activation block should have Jovian extraData")
require.Equal(t, eip1559.EncodeJovianExtraData(250, 6, 0), activationBlock.Extra(), "activation block should have Jovian extraData")

// Set the minimum base fee
setMinBaseFeeViaSystemConfig(t, env, minBaseFee)
Expand All @@ -87,7 +87,7 @@ func Test_ProgramAction_JovianMinBaseFee(gt *testing.T) {
// Block after the SystemConfig change
env.Sequencer.ActL2EmptyBlock(t)
blockAfterSystemConfigChange := env.Engine.L2Chain().GetBlockByHash(env.Sequencer.L2Unsafe().Hash)
expectedJovianExtraDataWithMinFee := eip1559.EncodeMinBaseFeeExtraData(250, 6, minBaseFee)
expectedJovianExtraDataWithMinFee := eip1559.EncodeJovianExtraData(250, 6, minBaseFee)
require.Equal(t, expectedJovianExtraDataWithMinFee, blockAfterSystemConfigChange.Extra(), "block should have updated Jovian extraData with min base fee")

// Verify base fee is clamped
Expand Down
2 changes: 1 addition & 1 deletion op-node/p2p/gossip.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ func BuildBlocksValidator(log log.Logger, cfg *rollup.Config, runCfg GossipRunti
log.Warn("payload is on v3 topic, but has nil blob gas used", "bad_hash", payload.BlockHash.String())
return pubsub.ValidationReject
// [REJECT] if the block is on a topic >= V3 and has a non-zero blob gas used field pre-Jovian
} else if !cfg.IsDAFootprintBlockLimit(uint64(payload.Timestamp)) && *payload.BlobGasUsed != 0 {
} else if !cfg.IsJovian(uint64(payload.Timestamp)) && *payload.BlobGasUsed != 0 {
log.Warn("payload is on v3 topic, but has non-zero blob gas used",
"bad_hash", payload.BlockHash.String(), "blob_gas_used", *payload.BlobGasUsed)
return pubsub.ValidationReject
Expand Down
2 changes: 1 addition & 1 deletion op-node/rollup/attributes/engine_consolidate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func jovianArgs() matchArgs {
validTxData, _ = validTx.MarshalBinary()
minBaseFee = uint64(1e9)

validJovianExtraData = eth.BytesMax32(eip1559.EncodeMinBaseFeeExtraData(
validJovianExtraData = eth.BytesMax32(eip1559.EncodeJovianExtraData(
*defaultOpConfig.EIP1559DenominatorCanyon, defaultOpConfig.EIP1559Elasticity, minBaseFee))
validJovianEIP1559Params = new(eth.Bytes8)
)
Expand Down
4 changes: 2 additions & 2 deletions op-node/rollup/derive/attributes.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ func (ba *FetchingAttributesBuilder) PreparePayloadAttributes(ctx context.Contex
}

if ba.rollupCfg.IsJovianActivationBlock(nextL2Time) {
jovian, err := JovianNetworkUpgradeTransactions(ba.rollupCfg.IsDAFootprintBlockLimit(nextL2Time), ba.rollupCfg.IsOperatorFeeFix(nextL2Time))
jovian, err := JovianNetworkUpgradeTransactions()
if err != nil {
return nil, NewCriticalError(fmt.Errorf("failed to build jovian network upgrade txs: %w", err))
}
Expand Down Expand Up @@ -206,7 +206,7 @@ func (ba *FetchingAttributesBuilder) PreparePayloadAttributes(ctx context.Contex
r.EIP1559Params = new(eth.Bytes8)
*r.EIP1559Params = sysConfig.EIP1559Params
}
if ba.rollupCfg.IsMinBaseFee(nextL2Time) {
if ba.rollupCfg.IsJovian(nextL2Time) {
r.MinBaseFee = &sysConfig.MinBaseFee
}
return r, nil
Expand Down
22 changes: 9 additions & 13 deletions op-node/rollup/derive/jovian_upgrade_transactions.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,24 +128,20 @@ func OperatorFeeFixUpgradeTransactions() ([]hexutil.Bytes, error) {
return upgradeTxns, nil
}

func JovianNetworkUpgradeTransactions(IsDAFootprintBlockLimit, IsOperatorFeeFix bool) ([]hexutil.Bytes, error) {
func JovianNetworkUpgradeTransactions() ([]hexutil.Bytes, error) {
upgradeTxs := make([]hexutil.Bytes, 0)

if IsDAFootprintBlockLimit {
txs, err := DAFootprintNetworkUpgradeTransactions()
if err != nil {
return nil, err
}
upgradeTxs = append(upgradeTxs, txs...)
txs, err := DAFootprintNetworkUpgradeTransactions()
if err != nil {
return nil, err
}
upgradeTxs = append(upgradeTxs, txs...)

if IsOperatorFeeFix {
txs, err := OperatorFeeFixUpgradeTransactions()
if err != nil {
return nil, err
}
upgradeTxs = append(upgradeTxs, txs...)
txs, err = OperatorFeeFixUpgradeTransactions()
if err != nil {
return nil, err
}
upgradeTxs = append(upgradeTxs, txs...)

return upgradeTxs, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
)

func TestJovianNetworkTransactions(t *testing.T) {
upgradeTxns, err := JovianNetworkUpgradeTransactions(true, true)
upgradeTxns, err := JovianNetworkUpgradeTransactions()
require.NoError(t, err)
require.Len(t, upgradeTxns, 5)

Expand Down
6 changes: 2 additions & 4 deletions op-node/rollup/derive/payload_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,10 @@ func PayloadToSystemConfig(rollupCfg *rollup.Config, payload *eth.ExecutionPaylo
})
}

if rollupCfg.IsMinBaseFee(uint64(payload.Timestamp)) {
if rollupCfg.IsJovian(uint64(payload.Timestamp)) {
// ValidateOptimismExtraData returning a nil error guarantees that m is not nil
r.MinBaseFee = *m
}
if rollupCfg.IsDAFootprintBlockLimit(uint64(payload.Timestamp)) {
r.DAFootprintGasScalar = info.DAFootprintGasScalar
r.SetDAFootprintGasScalar(info.DAFootprintGasScalar)
}
return r, nil
}
2 changes: 1 addition & 1 deletion op-node/rollup/interop/indexing/attributes.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func AttributesToReplaceInvalidBlock(invalidatedBlock *eth.ExecutionPayloadEnvel
// unfortunately, the engine API needs the inner value, not the extra-data.
// So we translate it here.
extraData := invalidatedBlock.ExecutionPayload.ExtraData
denominator, elasticity, minBaseFee := eip1559.DecodeMinBaseFeeExtraData(extraData)
denominator, elasticity, minBaseFee := eip1559.DecodeJovianExtraData(extraData)
eip1559Params := eth.Bytes8(eip1559.EncodeHolocene1559Params(denominator, elasticity))

attrs := &eth.PayloadAttributes{
Expand Down
18 changes: 6 additions & 12 deletions op-node/rollup/toggles.go
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
package rollup

// This file contains ephemeral feature toggles which should be removed
// This file contains ephemeral feature toggles for the next
// fork while it is in development. They should be removed
// after the fork scope is locked.

func (c *Config) IsMinBaseFee(time uint64) bool {
return c.IsJovian(time) // Replace with return false to disable
}

func (c *Config) IsDAFootprintBlockLimit(time uint64) bool {
return c.IsJovian(time) // Replace with return false to disable
}

func (c *Config) IsOperatorFeeFix(time uint64) bool {
return c.IsJovian(time) // Replace with return false to disable
}
// Example:
// func (c *Config) IsMinBaseFee(time uint64) bool {
// return c.IsJovian(time) // Replace with return false to disable
// }
4 changes: 2 additions & 2 deletions op-program/client/l2/test/miner.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ func (m *Miner) Fork(t *testing.T, blockNumber uint64, attrs *eth.PayloadAttribu
GasLimit: &gasLimit,
EIP1559Params: &eip1559Params,
}
if m.backend.Config().IsMinBaseFee(head.Time) {
if m.backend.Config().IsJovian(head.Time) {
stub := uint64(1e9)
attrs.MinBaseFee = &stub
}
Expand All @@ -146,7 +146,7 @@ func (m *Miner) MineAt(t *testing.T, head *types.Header, attrs *eth.PayloadAttri
GasLimit: &gasLimit,
EIP1559Params: &eip1559Params,
}
if m.backend.Config().IsMinBaseFee(head.Time) {
if m.backend.Config().IsJovian(head.Time) {
stub := uint64(1e9)
attrs.MinBaseFee = &stub
}
Expand Down